首页 > 代码库 > Android资源之图像资源(1)

Android资源之图像资源(1)

以前看别人的程序的drawable文件夹里有xml资源,说实话第一次见到这样的xml图像资源时,我真心不知道是干什么的。抽空学习了一下图像资源,才了解了这类图像资源的妙用。下面我来分享一下这部分知识:

Android 中的图像资源文件保存在res/drawable目录中。在图像资源目录中不仅可以存储各种格式(jpg,png,gif等)的图像文件,还可以使用各种XML格式的图像资源来控制图像的状态 和行为。

1、普通图像资源

Android支持3种图像格式:png、jpg和gif。官方推荐使用png格式的图像资源,jpg也可以考虑使用。但gif格式的图像文件并不鼓励使用,因为目前Android SDK并不支持动画gif。

普通图像资源的使用比较简单,故在此我就不过多讲述。本文主要还是讲述Android中XML图像资源。

2、XML图像资源

XML图像资源实际上就是在XML文件中指定drawable目录中的图像资源。XML图像资源使用<bitmap>标签定义。 

下面举一例大家看一下:

在一个drawable文件夹下新建一个XML图像资源文件,文件名bitmap_test.xml。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src=http://www.mamicode.com/"@drawable/ic_launcher">
下面看一下如何怎么在java代码中引用这个XML图像资源文件,代码如下:
Resources res=getResources();
		Drawable drawable=res.getDrawable(R.drawable.bitmap_test);
		TextView txt=(TextView)findViewById(R.id.textView);
		txt.setBackground(drawable);
当然,引用这个XML图像资源也可以按照在XML文件引用普通图像资源那样,引用该bitmap_test.xml图像资源,在此就不多说了。

2.1、图层(Layer)资源

图层资源有些类似于布局中的<FrameLayout>,所不同的是<FrameLayout>标签中可以包含任意的控件,而图层资源中的每一层只能包含图像。定义图层资源必须使用<layer-list>标签作为资源文件的根节点,<layer-list>标签中可以包含多个<item>标签,每一个<item>标签表示一个图像,最后一个<item>标签会显示在最顶层。下面的代码使用<item>指定了一个图像。

<item android:drawable="@drawable/image">

默认情况下,图像会尽量充满显示图像的视图。因此,显示的图像可能会被拉伸。为了避免图像拉伸,可以在<item>标签中使用<bitmap>标签引用图像。

下面来看一个图层资源的例子

图层资源文件layer_test.xml代码如下所示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:top="20dp" android:left="20dp">
        <bitmap android:src=http://www.mamicode.com/"@drawable/qrcode">
在XML布局文件中引用该图层资源,如下所示:

 <ImageView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src=http://www.mamicode.com/"@drawable/layer_test">

该图层资源案例的效果如图1-2所示:


图1-2图层资源案例演示效果

如无特殊情况建议使用图层来实现多个图像重合的效果。

由于时间的问题,Android资源之图像资源我就先讲到这里,明天毕业答辩之后,再把剩余的内容补上。

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/30789545