SurfaceView 的触控和轨迹球事件

1,改开始什么也没有,当第一点击的时候,图标会出现在那个地方,然后点击其它地方,图标会在触控的地方显示

2,拖着图标移动,到鼠标事件UP的地方绘画停止

[java] view plain copy print ?
  1. "COLOR: #000000">import android.app.Activity;  
  2. import android.content.Context;  
  3. import android.graphics.Bitmap;  
  4. import android.graphics.BitmapFactory;  
  5. import android.graphics.Canvas;  
  6. import android.os.Bundle;  
  7. import android.view.MotionEvent;  
  8. import android.view.SurfaceView;  
  9.   
  10. public class Touch_TrackActivity extends Activity {  
  11.     /** Called when the activity is first created. */  
  12.     class MYSurFaceView extends SurfaceView{  
  13.        float x;  
  14.        float y;  
  15.        Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.chart_pie);//用Bitmap获取Android图标   
  16.          
  17.         public MYSurFaceView(Context context) {  
  18.             super(context);  
  19.             setFocusable(true);//使用Key event,setFocusable(true)可以聚焦   
  20.             // TODO Auto-generated constructor stub   
  21.         }  
  22.           
  23.         @Override  
  24.         public boolean onTouchEvent(MotionEvent event) {  
  25.             // TODO Auto-generated method stub   
  26.             x=event.getX();//获取触控的X坐标   
  27.             y=event.getY();//获取触控的Y坐标   
  28.             Draw();  
  29.             return true;  
  30.         }  
  31.           
  32.         @Override  
  33.         public boolean onTrackballEvent(MotionEvent event) {  
  34.             // TODO Auto-generated method stub   
  35.             x=event.getX();//获取轨迹的X坐标   
  36.             y=event.getY();//获取轨迹的Y坐标   
  37.             Draw();  
  38.             return true;  
  39.         }  
  40.         private void Draw()  
  41.         {  
  42.             Canvas canvas=getHolder().lockCanvas();//定义Canvas,用SurfaceHolder的lockCanvas()方法锁住画布   
  43.             canvas.drawBitmap(bitmap, x, y,null);//绘画   
  44.             getHolder().unlockCanvasAndPost(canvas);//解锁画布   
  45.         }  
  46.     }  
  47.     @Override  
  48.     public void onCreate(Bundle savedInstanceState) {  
  49.         super.onCreate(savedInstanceState);  
  50.         setContentView(new MYSurFaceView(this));  
  51.     }  
  52. }  

更多相关文章

  1. android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
  2. android应用安装后不显示图标问题分析
  3. android 6.0及以上动态权限的获取
  4. 【Android】android4.4从图库选择图片,获取图片路径并裁剪
  5. Android(安卓)新浪微博授权
  6. 【Android】TypedArray——三个方法获取dimen返回值的类型
  7. Android(安卓)获取控件高度宽度三种方法,防止0的出现~~~~赞
  8. 仿抖音短视频APP源码,android获取屏幕尺寸,像素
  9. Android(安卓)OpenGL ES2.0 and GLSL 一个简单的Demo

随机推荐

  1. MySQL输入错误后如何取消
  2. Sql Server选择不同的记录和OrderBy NEWI
  3. “AND ..和... and”和“and(and .. and)”
  4. oracle:使用cmd命令在远程oracle服务器上
  5. MySQL基础入门学习【7】查询表达式解析 S
  6. sql 设置主键自增从1开始
  7. 用sql语句如何实现小数位数四舍六入,小数
  8. Mysql查询优化——Explain使用
  9. 检索SQL语句的输出参数
  10. 抱SQL SERVER大腿之我爱用视图(对大数据