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

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

  • 自定义View基础知识
    • 一、View的分类
    • 二、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属性

你可能感兴趣的:(Android自定义View)