手机在线画图

news/2024/11/29 6:45:44/

下面这个应用是这样的,手机在屏幕上画一条线服务器收到数据后也同步的画一条一样的线。主要是应用了SOCKET链接,因为最后版本还没有弄好所以代码还有些要修改的(比如SOCKET还没有关闭。。)效果的话感觉wifi条件下表现非常不错,3G信号下也马马虎虎,但是2G网络下比较坑爹,SOCKET数据包延迟比较大,服务器不能及时响应,都是一下子收到之前几秒发的数据的,看看怎么优化吧。

package com.example.mytest;import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;public class MainActivity extends Activity {private final String ip_address = "***";private ImageView iv;private Bitmap bm;private Canvas canvas;private Paint paint;private Handler handler;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv = (ImageView) findViewById(R.id.iv);paint = new Paint();paint.setColor(Color.BLACK);paint.setStrokeWidth(5);new Thread(new MyClass()).start();iv.setOnTouchListener(new OnTouchListener() {private int startX = 0;private int startY = 0;private int newX = 0;private int newY = 0;private boolean flag = true;@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {// 手指第一次接触屏幕case MotionEvent.ACTION_DOWN:bm = Bitmap.createBitmap(iv.getWidth(), iv.getHeight(),Bitmap.Config.ARGB_8888);canvas = new Canvas(bm);canvas.drawColor(Color.WHITE);startX = (int) event.getX();startY = (int) event.getY();break;// 手指在移动case MotionEvent.ACTION_MOVE:// 降低采样频率if (flag == true) {flag = false;} else {flag = true;break;}newX = (int) event.getX();newY = (int) event.getY();canvas.drawLine(startX, startY, newX, newY, paint);iv.setImageBitmap(bm);String str = startX + "," + startY + "," + newX + ","+ newY + "$";Message msg = Message.obtain();msg.obj = str;handler.sendMessage(msg);startX = newX;startY = newY;break;// 手指移开屏幕case MotionEvent.ACTION_UP:break;default:break;}return true;}});}public class MyClass implements Runnable {public void run() {Looper.prepare();try {handler = new Handler() {Socket s = new Socket(ip_address, 10086);OutputStream stream = s.getOutputStream();@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);String str = (String) msg.obj;byte[] data = str.getBytes();try {stream.write(data);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}};} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}Looper.loop();}}
}



http://www.ppmy.cn/news/371643.html

相关文章

Android 手机如何拍摄RAW图

佳能5D Mark III 专业玩摄影的朋友可能更倾向于使用相机的RAW格式,然后自己做后期处理,而不是直接拍摄JPEG格式的图片。 什么是RAW格式图片 无论是专业的数码相机还是手机的影像系统,Camera的处理流程都是类似的(关于手机的影像系…

画手机原型图工具推荐

1、Axure RP Axure RP是一个专业的快速原型设计工具。是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具,它能快速、高效的创建原型…

怎么使用手机来抠图?这几种抠图方法手机就能操作

怎么使用手机来进行抠图呢?使用手机抠图应用程序,我们无需将图片转移到电脑上进行编辑,只需在手机上点击几下,即可完成图片抠图。这种便捷的操作方式,能够大大提高我们的工作效率。可以随时随地进行抠图操作&#xff0…

(四)人工智能应用--深度学习原理与实战--Windows系统Tensorflow平台搭建

TensorfLow是由谷歌团队推出的基于数据流图的开源数值计算平台,是目前企业应用最为广泛的深度学习框架。本章我们将学习在Windows操作系统进行Tensorflow的安装及基于NVIDIA GPU的Cuda(GPU并行计算框架)、cudnn(深度学习加速平台】的安装配置。 主要学习内容: Windows平台下安…

一台电脑一天用多少度电

我们每天用电脑,你的电脑到底每天消耗你多少度电呢。很多人都想过,但是却没有计算过。一般地,电脑大约在250—400W之间(台式机)。一台电脑每个月的耗电量:假如每小时为300W一天开10小时一个月30 天90KW&…

怎么查看电脑的电池损耗情况?

电脑一般用个几年之后,电池就不那么耐用了,那怎么知道自己的电脑的电池的损耗情况呢? 很简单,windows10系统自身就可以查询电脑电池的损耗情况,搜索框中搜索cmd,然后一管理员身份运行,然后在命…

Win11笔记本耗电太快怎么办?

不少用户在Win11推出之后就在笔记本上安装了,但是使用时间长了,发现Win11系统在笔记本上耗电非常快,这是怎么回事?下面针对这个问题,来一起看看解决的办法。 方法一 1、首先,按 Win 键,或点击任…

电脑耗电量问题

电脑耗电问题:电脑耗电量因使用状态不同,而会有很大的差别。比如你在使用CD-ROM,则CD-ROM也要工作,耗电量会比不使用CD-ROM要大,另外CPU占用率的高低也会导致耗电量不同。 如下所列的配件:Intel Pentium4 …