使用剪切图像资源可以只显示一部分图像,这种资源经常被用在进度条的制作上。剪切图像资源是一个XML格式文件,资源只包含一个
首先准备两个png图像(background.png和progress.png),将它们放到res/drawable目录中,然后在res/drawable目录中建立一个clip.xml文件,并输入如下的内容。
源代码文件:src/ch10/Drawable/res/drawable/clip.xml
1 |
|
<clip>
标签使用了如下的3个属性来控制如何截取图像。
android:drawable:指定要剪切的原图像。
android:clipOrientation:截取的方向。可取的值:horizontal和vertical。分别表示水平和垂直方向截取图像。
android:gravity:表示如何截取图像。例如,left表示从左侧截取图像,right表示从右侧截取图像。
本例通过一个<LinearLayout>
标签和一个<ImageView>
标签实现进度条,布局代码如下:
源代码文件:src/ch10/Drawable/res/layout/clip.xml
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
下面的代码截取了部分背景图像。
源代码文件:src/ch10/Drawable/src/mobile/android/drawable/Clip.java
1 | ImageView imageview = (ImageView) findViewById(R.id.image); |
上面的代码涉及一个截取比例的问题。ClipDrawable类内部预设了一个最大的level值10000(Android SDK未提供API修改该值)。如果这个level的值为0,表示截取图像的宽度或高度为0,也就是说,图像就无法显示了。如果level的值为10000,表示显示全部的图像(不进行任何截取)。本例将level设为3000,表示从左侧截取30%的图像。显示效果如图所示。