在开发项目的过程中有到过很多难题,例如途中的左侧个人中心栏中的四个图标,该如何实现呢?
大概有两种方式解决
方法1:一个LinearLayout里面放一个ImageView和一个TextView
方法2:一个TextView然后设置drawableLeft
下面的是问题:
方法1:巨麻烦!要写三个控件,还要嵌套。要是一行多几个这样的控件,一整个页面得嵌套多少层啊?太麻烦了。。。
方法2:这个不错,直接设置drawableLeft(四个方向都行)搞定。但是,这个drawable的大小是不能够通过代码设置大小的!而且在代码里也没提供重新设置这个图片的方式,只能在xml布局文件中。是个坑!也走不通!
这次就和各位老司机分享一个最简单的自定义View,一起走向繁荣富强!
Come on baby ,按照自定义View的四大步骤走起!
自定义View的步骤:
1、自定义View的属性
2、在View的构造方法中获得我们自定义的属性
3、重写onMesure
4、重写onDraw
这次的自定义View继承于TextView,不用重新计算宽高,因为TextView 会帮我们计算,这就是继承自带控件的好处。
开始了:
1、自定义View的属性
按照需求,属性有:drawable,drawable宽度,drawable高度,drawable位置
在 /value/attrs.xml 中这么写:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MoreTextView">
<attr name="drawable_src" format="reference"/>
<attr name="imageHight" format="dimension"/>
<attr name="imageWidth" format="dimension"/>
<attr name=