美文网首页
自定义view的总结

自定义view的总结

作者: CodeManLB | 来源:发表于2017-11-03 18:04 被阅读0次

一,view的绘制过程

  • onMeasure():测量view的宽度和高度,根据自身的MeasureSpec和具体背景设置而定,自身view的MeasureSpec由自身的LayoutParams和父类的MeasureSpec决定。
  • onLayout():计算view的位置,left,right,top,bottom,四个点的位置。
  • onDraw():在屏幕上渲染view。

二,自定义view的总结

  • 有四种自定义方式:
  1. 继承原生的view,实现ondraw()方法,设计规则特殊的view,这种方式,需要实现wrap_content和padding。
  2. 继承原生的viewgroup,设计新的布局方式,这种方式,需要实现测量onMeasure和布局onLayout。
  3. 继承特定的view,如textview,不需要实现wrap_content和padding,用来扩展view的功能。
  4. 继承特定的viewgroup,如LinearLayout,不用实现测量和布局的方法,用来设计基于此布局的新的布局。

三,自定义view的过程

  • 设计继承view的类,至少实现两个构造方法:
//如果View是在Java代码里面new的,则调用第一个构造函数
public CustomView(Context context)
{
    super(context);
}

// 如果View是在.xml里声明的,则调用第二个构造函数
// 自定义属性是从AttributeSet参数传进来的
public  CustomView(Context context,AttributeSet attrs)
{
    super(context, attrs);
}
  • 自定义属性的设计:有时候需要设计除了系统给定之外的其它属性,需要以下几步:
  1. 在资源文件中,增加对于自定义view的自定义属性的说明:
<declare-styleable name="CustomView">
    <attr name="custom_attr" format="color|drawable">
</declare-styleable>
  1. 在具体使用CustomView的布局文件中加上这句代码,其中‘app’要和真正使用一致:**
xmlns:app="http://schems.android.com/apk/res-auto"
  1. 在布局设置CustomView的自定义属性:
<CustomView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:custom_attr="#fff">
</CustomView>
  1. 在自定义View的构造函数中使用自定义属性:
public  CustomView(Context context,AttributeSet attrs)
{
    super(context, attrs);
    TypedArray ta = context.obtainStyledAttributes(arrs,R.styleable.CustomView);
    mcolor = ta.getColor(R.styleable.CustomView_custom_attr,Color.RED);
    
}

相关文章

  • 高级Android工程师进阶系列文章汇总

    自定义View HenCoder(朱凯)自定义View系列 自定义view总结 Android 样式的开发 And...

  • Android自定义View总结

    Android自定义View总结 [toc] 步骤 自定义View的属性 在View的构造方法获取我们自定义的属性...

  • 安卓自定义 View 启航

    先总结下自定义 View 的步骤: 自定义 View 的属性 在 View 的构造方法中获得我们自定义的属性 [重...

  • 哥哥手把手教你安卓自定义view,来了老弟

    先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性[3、重写on...

  • Android自定义View相关Api

    自定义View 对自定义View一直很模糊,刚好最近不太忙,系统性的总结一下。自定义View主要有以下几个知识点:...

  • Android自定义View

    自定义组件相信在面试过程中会经常被问到自定义组件相关问题,最近总结了下自定义View的方式; 总结来说,自定义控件...

  • View的工作原理浅谈(知识总结)

    这篇文章只是一个简单自定义知识总结,浅谈自定义View。在学习自定义View之前我们先了解一下几个概念。 一 V...

  • Android View(转)

    自定义View的原理自定义View基础 - 最易懂的自定义View原理系列自定义View Measure过程 - ...

  • Android - 用流程图展示View的绘制流程

    View的绘制源码流程,如下图片所示: 几点总结: 自定义View需要重写onMeasure和onDraw方法,不...

  • View的绘制

    有过自定义View经验的同学都清楚,自定义View要处理好两件事:View的绘制和事件的处理。这一篇简单总结了一下...

网友评论

      本文标题:自定义view的总结

      本文链接:https://www.haomeiwen.com/subject/ektxmxtx.html