关于Android手势缩放圆球
来源:互联网 发布:mac os x 10.5.8 软件 编辑:程序博客网 时间:2024/04/27 04:05
这个主要是根据手势缩放图片功能改装的一个简易Demo.熟悉一下图形操作..
代码如下:
package hfut.gmm;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PointF;import android.os.Bundle;import android.util.FloatMath;import android.util.Log;import android.view.MotionEvent;import android.view.View;public class MultiTouch extends Activity { PointF start = new PointF(); private Matrix matrix=new Matrix(); private Matrix savedMatrix=new Matrix(); @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);MyView mv=new MyView(this);this.setContentView(mv);}} class MyView extends View{ static final int NONE = 0; static final int DRAG = 1; static final int ZOOM = 2; int mode = NONE; float oldDist = 1f; float mr=0; float mx; float my;public MyView(Context context) {super(context);// TODO Auto-generated constructor stub}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubLog.d("Infor", "触摸监听到了...");switch(event.getActionMasked()){case MotionEvent.ACTION_DOWN://单点触碰mx=event.getX();mr=50;Log.d("Infor", "mx"+mx);my=event.getY();Log.d("Infor", "my"+my);mode=this.DRAG; break; case MotionEvent.ACTION_POINTER_DOWN://多点触碰oldDist=this.spacing(event);if(oldDist>10f){ Log.d("Infor", "oldDist"+oldDist);}mode=ZOOM;break; case MotionEvent.ACTION_MOVE://移动if(mode==DRAG){Log.d("Infor", "单点移动。。。");mx=event.getX();my=event.getY();}else if(mode==ZOOM){float newDist=spacing(event);if(newDist>10){mr=newDist/oldDist*100;Log.d("Infor", "多点移动。。。");Log.d("Infor", "newDist:"+newDist);}}break;case MotionEvent.ACTION_UP:mode=this.NONE;break;case MotionEvent.ACTION_POINTER_UP:mode=this.NONE;break;}invalidate(); return true;}private float spacing(MotionEvent event) { float x = event.getX(0) - event.getX(1); float y = event.getY(0) - event.getY(1); return FloatMath.sqrt(x * x + y * y); } @Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Paint paint=new Paint();paint.setColor(Color.BLUE);canvas.drawCircle(mx, my, mr, paint); }}
展示结果如下:
- 关于Android手势缩放圆球
- android图片手势缩放
- android图片手势缩放
- android 图片缩放手势
- Android 图片手势缩放
- Android之关于手势操作图片的缩放与移动
- Android:ScaleGestureDetector 缩放手势检测
- android手势缩放改变字体大小
- Android实现手势缩放图片
- Android 图片缩放,手势,事件
- android 手势缩放图片框架
- Android ScaleGestureDetector缩放手势识别
- 手势缩放
- Android通过手势实现的缩放处理
- android 通过手势缩放图片的大小
- Android之ScaleGestureDetector(缩放手势检测)
- 初学Android,手势缩放图片(四十八)
- Android通过手势实现的缩放处理
- 正则表达式
- Shuffle an Array or a List - Algorithm in Java
- 读<<夏日南亭怀辛大>>
- linux命令(2)
- 防火墙的x86、NP、ASIC和多核架构的比较
- 关于Android手势缩放圆球
- 统计自然语言处理——n元语法(马尔可夫模型)小结
- OgreXMLConverter的用法
- PHP使用不同索引的数组
- jsp静态包含和动态包含的区别
- android系统自带样式Android:theme
- Hypertable - 安装-单机
- 解说操作系统:(1)进程的基本概念
- How browsers work_浏览器是怎么工作的?