package com.example.a24915.design_competition;
import android.os.AsyncTask;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
private Socket socket;
Handler mHandler;
private InputStream inputStream = null;
private OutputStream outputStream = null;
private int code,speed;
private int[] a={0,0};
static boolean thiscode;
private SeekBar seekBar;
private TextView textView1,textView2,textView3;
private ImageButton imageButton1,imageButton2,imageButton3,imageButton4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("执行控制界面的onCreate()");
socket = ((MySocket)getApplication()).getSocket();
code = 0;
speed = 0;
thiscode = true;
seekBar=(SeekBar)findViewById(R.id.seekBar);
textView1=(TextView)findViewById(R.id.textView2);
textView2=(TextView)findViewById(R.id.textView4);
textView3=(TextView)findViewById(R.id.textView5);
imageButton1=(ImageButton)findViewById(R.id.imageButton);
imageButton2=(ImageButton)findViewById(R.id.imageButton2);
imageButton3=(ImageButton)findViewById(R.id.imageButton3);
imageButton4=(ImageButton)findViewById(R.id.imageButton4);
textView1.setText(Integer.toString(speed));
seekBar.setProgress(0);
if(!socket.isConnected()){
Toast.makeText(MainActivity.this,"未连接",Toast.LENGTH_SHORT).show();
}
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
textView1.setText(Integer.toString(i));
speed=i;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//停止滑动,在这里发送
}
});
imageButton1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
code+=1;
break;
case MotionEvent.ACTION_UP:
code-=1;
break;
}
a[0]=code;
a[1]=speed;
new MyAsyncTask1().execute(a);
return true;
}
});
imageButton2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
code+=2;
break;
case MotionEvent.ACTION_UP:
code-=2;
break;
}
a[0]=code;
a[1]=speed;
new MyAsyncTask1().execute(a);
return true;
}
});
imageButton3.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
code+=4;
break;
case MotionEvent.ACTION_UP:
code-=4;
break;
}
a[0]=code;
a[1]=speed;
new MyAsyncTask1().execute(a);
return true;
}
});
imageButton4.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
code+=8;
break;
case MotionEvent.ACTION_UP:
code-=8;
break;
}
a[0]=code;
a[1]=speed;
new MyAsyncTask1().execute(a);
return true;
}
});
// mHandler=new Handler();
// Runnable r=new Runnable() {
// @Override
// public void run() {
// new MyAsyncTask2().execute("go");
// }
// };
// mHandler.postDelayed(r,2000);
Thread_Receive thread_receive = new Thread_Receive();
thread_receive.start();
}
@Override
protected void onStart() {
super.onStart();
System.out.println("执行控制界面的onStart()");
}
@Override
protected void onResume() {
super.onResume();
System.out.println("执行控制界面的onResume()");
}
@Override
protected void onRestart() {
super.onRestart();
System.out.println("执行控制界面的onRestart()");
}
@Override
protected void onPause() {
super.onPause();
System.out.println("执行控制界面的onPause()");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("执行控制界面的onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("执行控制界面的onDestroy()");
}
private class MyAsyncTask1 extends AsyncTask<int[],Integer,String>{
@Override
protected String doInBackground(int[]... params){
String sendStr = "";
try{
//计算并发送
int codetmp = params[0][0];
int speedtmp = params[0][1];
int sendcode = 0;
if(codetmp==0)
{
sendcode=0;
}
else if(codetmp==1)
{
sendcode=1;
}
else if(codetmp==2)
{
sendcode=2;
}
else if(codetmp==5)
{
sendcode=3;
}
else if(codetmp==9)
{
sendcode=4;
}
else if(codetmp==6)
{
sendcode=5;
}
else if(codetmp==10)
{
sendcode=6;
}
else if(codetmp==4)
{
sendcode=7;
}
else if(codetmp==8)
{
sendcode=8;
}else
{
return null;
}
sendStr = Integer.toString(sendcode)+"#"+Integer.toString(speedtmp);
outputStream=socket.getOutputStream();
outputStream.write(sendStr.getBytes());
}catch (Exception e){
e.printStackTra
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于安卓-树莓派控制的智能小车项目完整源码(安卓端和树莓派端).zip 【项目介绍】 资源中包含安卓端代码和树莓派端python代码 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 使用 1.导入android项目,编译并安装app; 2.使用手机热点连接安卓和树莓派:手机配置好热点,然后在树梅派上配置WLAN,连接到手机热点; 3.在树莓派上运行minicar.py程序; 4.查看并记下树莓派ip地址; 5.进入app,输入树莓派地址连接,显示连接成功后,点击控制设备; 安卓端和树莓派端是由手机热点进行连接的,就是让树莓派连接到手机热点; 两者之间使用socket进行通信;
资源推荐
资源详情
资源评论

























收起资源包目录




























































































共 54 条
- 1
资源评论

- 2407_897201822024-12-27资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。

onnx
- 粉丝: 1w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Linux安装步骤.ppt
- 银行管理系统—软件工程.doc
- (原版)Java程序员辞职申请书.doc
- 办公软件课程设计样本.doc
- 2023年计算机二级考试题目(1).doc
- MongoDB基于Java、PHP的一般操作和用户安全设置(1).doc
- 片上可编程系统设计导论知识讲解.ppt
- [精选]网络时代的人力资源管理(ppt 25页).pptx
- 安卓手机快捷键使用小技巧.docx
- 2013年项目管理人员工作总结(汇报版).doc
- 云计算技术在开放大学信息化管理中的应用.docx
- Excel表格通用模板:家庭装修装潢预算表模板.xls
- 2023年上半年系统集成项目管理工程师考试真题上午题.docx
- 2021网络销售年终总结.docx
- Google创始人拉里·佩奇与人工智能.docx
- 企业新网站如何制定有订单的网络营销推广方案(1).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
