首页 > 代码库 > 我套路的自定义View 手势篇(二)
我套路的自定义View 手势篇(二)
如果你还不了解自定义viewkey看一下这篇基础篇:http://www.cnblogs.com/jaelyn/p/6640671.html
加入手势很简单,只要重写onTouchEvent方法就可以获取到手势的信息。
@Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); }
其中这个返回值布尔类型的意思, ture处理这个消费的次事件,false表示没有处理该事件。(详细的可以去网上查一下,很多关于这个的解释)
接下来我们写一个跟随手机移动的小球代码如下:
public class MyView extends View{ private String TAG = "MyView"; private Paint paint; float x, y; public MyView(Context context) { super(context); initView(); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); initView(); } public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(); } public void initView(){ Log.d(TAG, "onCreat"); paint = new Paint(); paint.setColor(Color.RED); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { Log.d(TAG, "onSizeChanged"); super.onSizeChanged(w, h, oldw, oldh); } @Override protected void onDraw(Canvas canvas) { Log.d(TAG, "onDraw"); super.onDraw(canvas); canvas.drawCircle(x, y, 10, paint); } @Override public boolean onTouchEvent(MotionEvent event) { x = event.getX(); y = event.getY(); postInvalidate(); return true; } }
在onDraw中使用canvas.drawCircle(x, y, 10, paint)向屏幕绘制小球。重写onTouchEvent方法,获取触碰屏幕的位置,将小球的位置修改为触碰屏幕的位置。这样就实现了小球跟随手指移动的效果。(postInvalidate() 是用来刷新页面)
我套路的自定义View 手势篇(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。