在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。 这样就容易使apk变大。
先来看两个例子:
- <</span>shape
-
xmlns:android="http://schemas.android.com/apk/res/android" -
android:shape="rectangle"> -
<</span>gradient android:startColor="#FFFF0000" -
android:endColor="#80FF00FF" -
android:angle="270" /> -
<</span>padding android:left="50dp" -
android:top="20dp" android:right="7dp" -
android:bottom="7dp" /> -
<</span>corners android:radius="8dp" /> - </</span>shape>
效果:
简单说明一下:
gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
solid -- 填充。
stroke -- 描边。
corners -- 圆角。
padding -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。
上面这些不是本讲重点。 本讲的重点是这些xml中属性,与Java类的对应关系, 以及如何使用Java类写出上面一样的效果!
首先来看对应关系:
父节点 shape -- ShapeDrawable
发现只有几个是可以对应的~~ 看来通过Java代码来实现上述是行不通的..