自定義view繪製一個跟隨手指觸控移動的小球
阿新 • • 發佈:2018-12-01
今天我們就來繪製一個能跟隨手指的觸控而移動的小球。其實很簡單,只要我們能夠運用自定義view中的
onTouchEvent方法我們就可以很輕易的做到。
第一步:我們使用自定義view繪製一個小球:
private float x ; private float y ; Paint paint = new Paint(); public myView(Context context) { super(context); } public myView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); x = getWidth()/2;//獲取x y座標 y = getHeight()/2; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //設定顏色為紅色 paint.setColor(Color.RED); canvas.drawCircle(x,y,100,paint); }
第二步:想辦法讓小球跟著手指移動:
我們想讓小球跟著手指觸控移動,就得需要重寫onTouchEvent方法,我們在這個方法裡面重新獲取x,y座標,然後再重新整理檢視,就起到了移動的xiao效果
@Override
public boolean onTouchEvent(MotionEvent event) {
x = event.getX();
y = event.getY();
invalidate();
return true;//這裡面必須返回true,否則小球移動不了。
}