Android SurviceView的触控和轨迹球事件

SurfaceView 的触控和轨迹球事件

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

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

import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.os.Bundle; import android.view.MotionEvent; import android.view.SurfaceView; public class Touch_TrackActivity extends Activity { /** Called when the activity is first created. */ class MYSurFaceView extends SurfaceView{ float x; float y; Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.chart_pie);//用Bitmap获取Android图标 public MYSurFaceView(Context context) { super(context); setFocusable(true);//使用Key event,setFocusable(true)可以聚焦 // TODO Auto-generated constructor stub } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub x=event.getX();//获取触控的X坐标 y=event.getY();//获取触控的Y坐标 Draw(); return true; } @Override public boolean onTrackballEvent(MotionEvent event) { // TODO Auto-generated method stub x=event.getX();//获取轨迹的X坐标 y=event.getY();//获取轨迹的Y坐标 Draw(); return true; } private void Draw() { Canvas canvas=getHolder().lockCanvas();//定义Canvas,用SurfaceHolder的lockCanvas()方法锁住画布 canvas.drawBitmap(bitmap, x, y,null);//绘画 getHolder().unlockCanvasAndPost(canvas);//解锁画布 } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MYSurFaceView(this)); } }


main.xml里面的东西什么都不用变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值