Android自定义View-学习笔记(一)

Android自定义View-学习笔记(一)

自定义View基础知识

一、View的分类

Android基于View和ViewGroup,为Android开发者构建多样化UI提供了强大组件化模型。

类型描述特点
View单一的View,如:TextView不包含子View
ViewGroup一个视图容器,可以包含多个View,如:LinearLayout包含子View

二、View类的认识

  • View类是Android各种组件的基类

自定义View要继承View类或者View类的子类

  • View类有4个构造函数

自定义View必须重写至少一个构造函数

构造函数具体如下:

	/**
	 * 如果View是在代码里面new的,则调用第一个构造函数
	 */
	public Table(Context context) {
        super(context);
    }

	/**
     * 如果View是在.xml里声明的,则调用第二个构造函数
     * 自定义属性是从AttributeSet参数传进来的
     */
    public Table(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

	/**
     * 不会自动调用
     * 一般是在第二个构造函数里主动调用
     * 如View有style属性时
     */
    public Table(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

	/**
     * API21之后才使用
     * 不会自动调用
     * 一般是在第二个构造函数里主动调用
     * 如View有style属性时
     */
    public Table(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
  • 构造函数的参数
    • Context - 上下文,View中随处都会用到
    • AttributeSet - XML属性(当从XML inflate的时候)
    • int defStyleAttr - 应用到View的默认风格(定义在主题中)
    • int defStyleRes - 如果没有使用defStyleAttr,应用到View的默认风格

除了Context,其它参数是用来通过XML属性配置View的初始状态(从布局,style以及theme中)

  • 关于自定义View的XML属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值