关于越来越多的新手找不到自定义view的学习资料或者无法学会自定义view。

本篇专门讲解一下初级进阶必经之路,自定义view。。

我们先把自定义View细分一下,分为两种 
A 自定义ViewGroup 
B 自定义View

ViewGroup 就是个容器,

简单自定义我们一般采用继承特殊view或者ViewGroup 的方式。

比如做一个倒计时的Button

还有就是绘制的方式去绘制自己想要的view。

比如绘制圆角矩形作为Button背景

下面看下自定义view的步骤:

1、自定义View的属性
2、在View的构造方法中获得我们自定义的属性
3、重写onMesure 
4、重写onDraw

view的属性定义在 res/ values/  下建立一个attrs.xml文件中

<resources> <declare-styleable name="MyView"> <attr name="textColor" format="color"/> <attr name="textSize" format="dimension"/> </declare-styleable>
</resources>
xmlns:my=http://schemas.android.com/apk/res/com.example.xhelloworld
<com.example.xhelloworld.MyView android:layout_width="fill_parent" android:layout_height="wrap_content"   my:textColor="#FFFFFFFF"   my:textSize="22dp" /> 

前两部算是完成了。。。

接下来需要实现具体的MyView  类
根据需要一般采用继承特殊view或者ViewGroup 的方式。
重点强调构造函数:
如果要在布局文件中用到,还需要添加一个构造方法:
public MyView (Context context,AttributeSet attrs){
       super(context, attrs);  
    }
如果写两个参数的构造函数,就需要先实现一个参数的构造函数
public class MyView extends TextView{
// 当在代码中创建对象时会被调用
    public MyView (Context context) {
       super(context);
    }
}
这就是为什么需要这两个构造参数的原因。

时间问题先写到这,待续。。。。。

Android 自定义view的知识梳理。相关推荐

  1. Android 系统(201)---Android 自定义View实战系列 :时间轴

    Android 自定义View实战系列 :时间轴 Android开发中,时间轴的 UI需求非常常见,如下图: 本文将结合 自定义View & RecyclerView的知识,手把手教你实现该常 ...

  2. Android自定义view之基础知识

    Android自定义view之基础知识 虽然Android已经自带了很多实用的view和layout,加以调教能实现很美观的界面,但是有一些情况下,需要实现特殊的界面效果,比如我们比较熟悉的各种播放器 ...

  3. android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定

    概述: 360安全卫士的那个刷新球(姑且叫它刷新球,因为真的不知道叫什么好,不是dota里的刷新球!!),里面像住了水一样,生动可爱,看似简单,写起来不太简单,本例程只是实现了它的部分功能而已,说实话 ...

  4. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

  5. android 自定义取色器,【Android自定义View】仿Photoshop取色器ColorPicker(二)

    ColorPicker 一款仿Photoshop取色器的Android版取色器. 前言 上一篇已经简单介绍了ColorPicker的项目结构以及两种颜色空间,接下来我们详细解析一下ColorPicke ...

  6. Android自定义view详解,使用实例,自定义属性,贝塞尔曲线

    //只会触发执行onDraw方法,只会改变绘制里面的内容,条目的绘制 invalidate(); //只会触发执行onDraw方法,但是可以在子线程中刷新 postInvalidate(); //vi ...

  7. Android 自定义View

    [Android 自定义View] Android 自定义View 自定义View基础 自定义TextView 继承View重写onDraw方法 View的构造方法 自定义属性 创建attrsxml文 ...

  8. android 自定义view 动画效果,Android自定义view实现阻尼效果的加载动画

    效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振幅随时间逐渐衰减的振动,又 ...

  9. Android 自定义View(四)实现股票自选列表滑动效果

    一.前言 Android 开发过程中自定义 View 真的是无处不在,随随便便一个 UI 效果,都会用到自定义 View.前面三篇文章已经讲过自定义 View 的一些案例效果,相关类和 API,还有事 ...

最新文章

  1. 这7个实用工具类网站,你用过几个?
  2. 《父亲》家书选:小气的母亲
  3. Java面试题技术类一
  4. 从「林」开始: imx51-linux-rt3070ap-dhcpd
  5. 5、MySQL热备份及恢复
  6. linux arm下硬件驱动程序放哪里,Arm-Linux摄像头驱动程序的移植
  7. 云计算时代,观测产品Sunfire的成长史
  8. windows操作系统原理_操作系统 — 深入理解内存的原理
  9. 速看,PMP备考通关宝典来袭
  10. 02-iOS蓝牙连接流程介绍
  11. 离获得支付牌照还有多远?今日头条申请“字节支付”商标
  12. python excel 微信_Python读写Excel文件第三方库汇总,你想要的都在这儿!,微信文件第三方打开...
  13. 高德定位,只能定位一次,导航图标就消失
  14. 中央广播电视大学中等专业办公设备使用与维护
  15. FastJson是如何导致App Crash的
  16. OpenHarmony恢复启动子系统init进程之服务管理与发布
  17. (三)单细胞数据分析——细胞亚群的表型特征刻画
  18. 6. 设计模式之迭代思维:如何高效编程?
  19. esp8266最小系统似乎是可以直接用起来接在飞控上的
  20. FL Studio21云盘水果FL21版有什么新功能?

热门文章

  1. Tarjan水题系列(2):HNOI2012 矿场搭建
  2. OVERLAPPED结构与GetOverlappedResult函数
  3. PHP基于数组的分页函数(核心函数array_slice())
  4. Apache-Tomcat的安装配置
  5. 摘自《解析极限编程-拥抱变化》
  6. 学习 Linux_01: 引导程序
  7. 云后台Bmob的一些资料
  8. Ubuntu16.04 Xmind安装
  9. memcache调整value大小限制
  10. Android UI布局之LinearLayout