必知必会的Android自定义View

自定义Android View
本文介绍如何在Android中创建自定义View,并通过实例演示一个能跟随手指移动的小球View的实现过程。

当Android系统提供的UI组件不足以满足项目需要时,我们可以通过继承View来派生自定义控件。今天我们就一起来了解必知必会的Android自定义View,

View只是一个矩形的空白区域,没有任何内容。Android应用的其他UI组件都继承View,然后在View组件提供的空白区域上绘制外观。

接下来我们代码实战自定义View,实现一个跟随手指移动的小球:

1.定义类并继承View:

public class BallView extends View {

2.重写构造方法及所需要的方法:

2.1生成构造方法,定义成员变量,小球坐标和画笔:

    private float currentX = 60;
    private float currentY = 60;
    private Paint paint = new Paint();

    public BallView(Context context) {
        super(context);
    }

2.2重写Draw方法,设置画笔并绘制小球:

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        paint.setColor(Color.BLUE);
        canvas.drawCircle(currentX,currentY,50,paint);
    }

2.3重写onTouchEvent方法,处理触摸事件:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        currentX = event.getX();
        currentY = event.getY();
        invalidate();
        return true;
    }

3.通过Java代码将组件添加到指定容器中:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout root = (LinearLayout) findViewById(R.id.activity_main);
        final BallView ballView = new BallView(this);
        ballView.setMinimumWidth(300);
        ballView.setMinimumHeight(500);
        root.addView(ballView);
    }
}

最终效果如gif图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值