对另一个drawable资源,基于当前的level,进行尺寸变换的drawable。
-
文件位置:
-
res/drawable/filename.xml
文件名即资源名
编译数据类型:
-
指向
ScaleDrawable
的指针。
资源引用:
-
In Java:
R.drawable.filename
In XML:@[package:]drawable/filename
语法:
-
<?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" />
元素:
- 示例:
-
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/logo" android:scaleGravity="center_vertical|center_horizontal" android:scaleHeight="80%" //表示从高度80% 开始缩放,80%为图片高度最小值。level 0不可见。 android:scaleWidth="80%"/> //表示从宽度80% 开始缩放,80%为图片宽度最小值。level 0不可见。
参考:
-
ScaleDrawable
示例:
在scale.xml中:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:scaleWidth="50%"
android:scaleHeight="50%"
android:drawable="@drawable/image1"
android:scaleGravity="center_vertical|center_horizontal"
>
</scale>
在layout中使用:
<ImageView
android:id="@+id/imgView"
android:src="@drawable/scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在代码中设置level:
ImageView imageView=(ImageView)findViewById(R.id.imgView);
ScaleDrawable scaleDrawable=(ScaleDrawable)imageView.getDrawable();
scaleDrawable.setLevel(1); //level 1的时候就是50%
//scaleDrawable.setLevel(0); //level 0不可见
![](https://img-my.csdn.net/uploads/201212/03/1354516551_4610.jpg)