android中图形图像处理之drawable用法分析

2019-12-10 19:57:47王振洲

从XML文件中创建

到如今,你应该比较熟悉按Android的原则去开发一个用户接口,因此,你也应该理解了定义一个XML文件对于对象的作用与灵活的重要性。这个理念无数次用于Drawables.

如果你想创建一个Drawable对象,而这个对象并不依赖于变量或用户的交换,把它定义到XML中去应该是一个不错的方法。即使你期望在你的应用程序中改变其属性来增加用户体验。你应该考虑把对象放入XML中,因为你可以随时修改其属性。

当你在你的XML中定义了一个Drawable,保存这个XML文件到你工程目录下res/drawable目录中,然后通过调用Resource.getDrawable()来检索并实例化,传递给它XML文件中的资源ID号。任何Drawable的子类都支持inflate这个方法,这个方法会通过XML来实例化你的程序。任何Drawable都支持XML的扩展来利用特殊的XML属性来帮助定义对象的属性,可以查看任何Drawable子类文档来看如何定义XML文件。

如下定义了一个TransitionDrawable:An extension of LayerDrawables that is intended to cross-fade between the first and second layer. It can be defined in an XML file with the element. Each Drawable in the transition is defined in a nested . 有关TransitionDrawable的详细信息查看http://www.easck.com/reference/android/graphics/drawable/TransitionDrawable.html。

将其定义在res/drawable/expand_collapse.xml:

 

 
  1. <?xml version="1.0" encoding="utf-8"?>  <transition xmlns:android="http://www.easck.com/apk/res/android"> 
  2. <item android:drawable="@drawable/pic1"/>  <item android:drawable="@drawable/pic2"/> 
  3. </transition> 

下面实例化并处理:

 

 
  1. public class MainActivity extends Activity {  /** Called when the activity is first created. */