下面是一个示例代码,演示了如何创建一个简单的触摸拖动的安卓用户界面:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PointF;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class TouchDragView extends View {
private Paint paint;
private PointF position;
public TouchDragView(Context context) {
super(context);
init();
}
public TouchDragView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.RED);
position = new PointF(0, 0);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(position.x, position.y, 50, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
position.set(event.getX(), event.getY());
invalidate();
return true;
case MotionEvent.ACTION_MOVE:
position.set(event.getX(), event.getY());
invalidate();
return true;
case MotionEvent.ACTION_UP:
position.set(event.getX(), event.getY());
invalidate();
return true;
}
return super.onTouchEvent(event);
}
}
在布局文件中添加这个自定义的视图:
这个示例代码创建了一个自定义的视图类TouchDragView
,继承了View
。在onTouchEvent
方法中,根据触摸事件的类型更新position
变量,并调用invalidate
方法来触发视图的重绘。在onDraw
方法中,使用Canvas
对象绘制一个圆形,圆心位置由position
变量决定。在布局文件中,将这个自定义的视图添加到LinearLayout
中。