检测手机多点触摸
来源:互联网 发布:程序员盗600 编辑:程序博客网 时间:2024/04/29 05:13
先创个MyView.java类:
package com.example.g160628_19_poinstouch;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2017/7/9 0009. */public class MyView extends View{ List<Circle> circles=new ArrayList<>(); public MyView(Context context) { super(context); } public MyView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint=new Paint(); //画了个圆 for (Circle circle : circles) { circle.drawSelf(canvas,paint); } } @Override public boolean onTouchEvent(MotionEvent event) { //获取手指的行为 int action=event.getAction(); int action_code=action&0xff; //获取手指的下标index int pointIndex=action>>8; //获取手指的坐标 float x=event.getX(pointIndex); float y=event.getY(pointIndex); //获取手指的名字ID int pointId=event.getPointerId(pointIndex); if(action_code>=5){ action_code-=5; } switch (action_code) { case 0://手指按下 //实例化园 Circle circle=new Circle(x,y,pointId); //将园添加到集合中 circles.add(circle); break; case 1://手指抬起 circles.remove(get(pointId)); break; case 2://手指按下移动 for (int i = 0; i <event.getPointerCount() ; i++) { int id=event.getPointerId(i); get(id).x=event.getX(i); get(id).y=event.getY(i); } break; } //重新调用onDraw (重绘) postInvalidate(); return true; } //在圆集合中找到你要移除的 public Circle get(int pointId){ for (Circle circle : circles) { if(circle.pointId==pointId){ return circle; } } return null; }}
实体类Circle.java
package com.example.g160628_19_poinstouch;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import java.util.Random;/** * Created by Administrator on 2017/7/9 0009. */public class Circle { public float x; public float y; public int r=100; public int pointId; int red; int greed; int blue; Random random=new Random(); public Circle(float x, float y, int pointId) { this.x = x; this.y = y; this.pointId = pointId; red=random.nextInt(255); greed=random.nextInt(255); blue=random.nextInt(255); } //画自己 要有画布和画笔 public void drawSelf(Canvas canvas, Paint paint){ paint.setColor(Color.rgb(red,greed,blue)); canvas.drawCircle(x,y,r,paint); }}
MainActivity.java类
package com.example.g160628_19_poinstouch;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); }}
阅读全文
0 0
- 检测手机多点触摸
- 检测手机多点触摸数
- 检测手机多点触摸事件
- 检测手机多点触摸点数
- Android手机检测多点触摸
- Android 检测手机多点触摸点数
- Android-检测手机多点触摸点数
- Android-检测手机多点触摸点数
- Android—检测手机多点触摸点数
- Android_检测手机多点触摸点数
- 19.实现多点触摸画圆(拖动+检测手机多点触摸的点数+随机颜色)
- 测试手机多点触摸
- 多点触摸和手势检测
- 第一章:多点触摸与手势检测
- 多点触摸
- 多点触摸
- 多点触摸
- 多点触摸
- HTML5的案例
- Android绘图机制与处理技巧(六)Android图像处理之SurfaceView
- jzoj1729 blockenemy(贪心,并查集)
- javaApplication.java
- git与github使用笔记
- 检测手机多点触摸
- MyBatis使用接口映射的简单HelloWorld小例子
- [Java]读取文件方法大全
- Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone...
- 作业4. LZO词典压缩器实现
- oracle中varchar和char的区别
- (转载)JSP的基础语法【一】
- 常见面试数据库优化
- javascript 获取HTML DOM对象五种方式