Drawable资源——Scale Drawable 规模可绘制
1,认识
它可以根据自己的等级(level)将指定的Drawable缩放到一定比例。
文件位置 ︰
res/drawable/filename.xml
文件名用作资源 id。
语法 ︰
<?xml version="1.0" encoding="utf-8"?>
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:scaleHeight="percentage"
android:scaleWidth="percentage" />
2,各属性注解
<scale>
xmlns:android
字符串。所需。定义 XML 命名空间,
android:drawable
可绘制资源。所需。可绘制的资源的引用。
android:scaleGravity
等同于Shape中的android:gravity
top
将对象放在其容器,不改变其大小的顶部。
bottom
将对象放在其容器,不改变其大小的底部。
left
将对象放在左边缘与其容器,不改变其大小。这是默认设置。
right
将对象放在其容器,不改变其大小的右边缘。
center_vertical
将对象放在其容器,不改变其大小的垂直中心。
fill_vertical
如果需要完全充满其容器,成长对象的垂直大小。
center_horizontal
将对象放在其容器,不改变其大小的水平中心。
fill_horizontal
如果需要完全充满其容器,成长对象的水平大小。
center
将对象放置在其容器中的垂直和水平轴,不改变其大小的中心。
fill
如果需要完全充满其容器,成长对象的水平和垂直大小。
clip_vertical
可以设置要剪切到其容器边界的顶部和底部边缘的附加选项。
剪辑基于垂直重力 ︰ 顶尖的重力剪辑的底部边缘、 底部重力
剪辑顶部边缘的和既不剪辑两个边缘。
clip_horizontal
附加选项,可以设置要剪切到其容器边界的左或右边缘。剪辑基于
横向重力 ︰ 左的重力剪辑的右边缘、 正确的重力剪辑的左边的缘,
和既不剪辑两个边缘。
android:scaleHeight
百分比。指定Drawable高的缩放比例。例如 ︰ 100%、 12.5%、 等。
android:scaleWidth
百分比。指定Drawable宽的缩放比例。例如 ︰ 100%、 12.5%、 等。
3,代码示例
scale_drawable_useing.xml
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/btn_logo"
android:scaleGravity="center"
android:scaleHeight="70%"
android:scaleWidth="70%" />
ScaleDrawableUseingActivity.java
ivScale=(ImageView) findViewById(R.id.iv_scale);
ScaleDrawable scaleD=(ScaleDrawable) ivScale.getBackground();
scaleD.setLevel(1);
注意:
必须要有设置等级这一步:scaleD.setLevel(),因为Drawable的默认等级为0,那么如果不设置等级,那么ScaleDrawable将无法显示出来。
系统内部约定的Drawable等级的范围为:0~10000