Android开发中自定义视图

本文介绍了如何在Android开发中自定义视图,主要分为简单视图和聚合视图两类。通过继承View或ViewGroup,覆盖onDraw()和onTouchEvent()等方法实现绘制和交互功能。示例中详细讲解了创建一个响应触摸事件,动态绘制正方形的自定义视图过程。
摘要由CSDN通过智能技术生成

很多时候,Android自身提供给我们的视图可能不能满足我们的需求,这个时候我们就需要 自定义视图
虽然自定义视图很多,但总体归为两个类别:

  1. 简单视图 。简单视图内部当然也可以很复杂,之所以称之为简单视图是因为,简单视图中不包括子视图。简单视图几乎总是用来处理定制绘制。
  2. 聚合视图 。聚合视图一般包括很多个子视图,在聚合视图中一般不处理绘制事件,而是对子视图进行管理,绘制的任务一般都是有子视图来完成。

一般来说,自定义视图一般可以分为两步来完成。

  1. 选择合适的父类。 一般来说,如果我们想在某个控件的基础上进行延伸,一般选择该控件为父类进行自定义视图。如果我们向更加自由一下,那我们一般选择 View 作为我们的父类,继承View 相当于我们在一张空白的画纸上作画,所以更加自由,所以这种方法用的最多。
  2. 覆盖那些我们需要使用到的方法,在其中完成绘图操作。

接下来就开始我们的工作。
先新建一个 继承自 ViewDrawingView 的类,并覆盖 View 的构造方法和 onDraw 方法。

package com.tobetheonlyone.startandroid;

import android.content.Context;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

/**
 * Created by ToBeTheOnlyOne on 2018/2/10.
 */

public class DrawingView extends View {
   

    public DrawingView1(Context context, AttributeSet attrs){
        super(context,attrs);

    }

    @Override
    protected void onDraw(Canvas canvas){

    }
}

先在 onDraw 方法中在绘制视图颜色为0xffdfdada ,并在视图中间绘制一个半经为 100 的圆。

@Override
    protected void onDraw(Canvas canvas){

        //绘制背景
        canvas.drawColor(0xffdfdada);

        //画笔的初始化
        Paint drawPaint = new Paint();
        drawPaint.setColor(0xffff0000);
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值