最近比较忙,没时间总结,今天抽空总结一下drawable,一个让我很纠结的问题(xml文件中定义)。
1.bitmap drawable,这个其实只要是研究会自定义view的就会发现,其实xml文件中的各个属性,都是很熟悉的,所以就不过多解释,当然也不推荐这么使用bitmap,因为很占用内存,所以仅仅把代码贴出来,不解释。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/pic1"
android:gravity="center"
android:tileMode="disabled"
android:antialias="true"
android:dither="true"
android:mipMap="false"
android:filter="true">
<!--tileMode 图片的重复模式 分为没有 镜像 重复 边缘拉伸-->
<!--antialias 抗锯齿,可以有效解决图片边缘光滑度-->
<!--dither 防止抖动,当图片像素配置和手机屏幕像素配置不一致时,此属性生效-->
<!--filter 开启过滤效果,当图片被拉伸或者压缩时,此属性生效-->
<!--其他属性都为正常属性,这里不做解释-->
</bitmap>
2.shape drawable 这个用的最多,而且很重要,所以重点介绍一下,同时推荐博客:http://blog.csdn.net/harvic880925/article/details/41850723
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<!--shape 分为矩形 椭圆(圆) 直线 圆环 默认为矩形-->
<!--直线必须要通过指定stroke的值才会生效-->
<corners android:radius="5dp"/>
<!--corners 倒角 可以分别指定四个倒角的个子属性值,此属性只对矩形起作用-->
<size android:height="100dp"
android:width="100dp"/>
<!--尺寸大小,说明此shape有具体的尺寸大小,但是没有任何意义,因为他显示的大小是由view来控制的-->
<solid android:color="@color/colorAccent"/>
<!--solie 表示填充的颜色,只能由纯色来填充-->
<padding android:top="10dp"
android:bottom="10dp"/>
<!--padding 分为上下左右可以分别指定值,但是此值对于shape并不起作用,而是作用到view上的-->
<stroke android:color="@color/colorPrimaryDark"
android:width="18dp"
android:dashGap="3dp"
android:dashWidth="20dp"></stroke>
<!--stroke 描边,作用在矩形和圆形,也就是实心的上面为描边,作用在直线和圆环上为线宽-->
<!--color 描边的颜色,没有什么可说的-->
<!--dashGap 线段的间距,通过设置间距我们可以发现其实宽度有一半是被覆盖掉的-->
<!--dashWidth 线段的长度-->
<gradient android:angle="45"
android:startColor="@color/colorPrimaryDark"
android:centerColor="@color/center_color"
android:endColor="@color/colorAccent"
android:centerX="30"
android:centerY="30"
android:gradientRadius="50dp"
android:type="radial"/>
<!--gradient 渐变色,此属性与solid属性是互斥的,而且优先级较高-->
<!--startcolor centercolor endcolor 启始 中间 结束三个颜色值-->
<!--centerX centerY渐变的中心点,此坐标会影响效果,默认为中心-->
<!--type 类型 分为线性(默认) 径向渐变(圆环) 扫描线渐变-->
<!--gradientRadius 渐变半径,当类型为径向渐变才有作用-->
<!--angle 渐变的角度,默认为0度,而且数值必须为45的倍数-->
</shape>
3.layer drawable 顾名思义就是分层的drawable,可以制作复合效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rectangle_round_concer"/>
<item android:drawable="@drawable/pic1"
android:top="20dp"
android:bottom="20dp"
android:left="20dp"
android:right="20dp"/>
<!--<item >-->
<!--<shape android:shape="oval"-->
<!-->-->
<!--<size android:width="30dp"-->
<!--android:height="30dp"/>-->
<!--<solid android:color="@color/colorAccent"/>-->
<!--</shape>-->
<!--</item>-->
<!--layer-list 顾名思义,就是shape的集合,但是是有层级关系的,后添加的在最上层-->
<!--它里面可以有多个item,并且item里面可以套用shape-->
<!--top bottom left right 含义就是padding的意思-->
</layer-list>
4.最重要的一个selector,但是我就不讲了。