android中drawable之(一)

Bitmap

android 支持3中格式的图片.png(推荐使用) .jpg(可接受) .gif(推荐不使用)

文件位置:

res/drawable/filename.png (.png.jpg, or .gif)

对应资源类:

 BitmapDrawable

资源引用:

In Java: R.drawable.filename
In XML: @[package:]drawable/filename

demo:

<ImageView    

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:src="@drawable/myimage" />

 

Resources res = getResources();

Drawable drawable = res.getDrawable(R.drawable.myimage);

 

XML Bitmap

定义指向bitmap的引用,可以在xml中增加bitmap的额外属性。

文件位置:

res/drawable/filename.xml

对应资源类:

 BitmapDrawable

资源引用:

In Java: R.drawable.filename
In XML: @[package:]drawable/filename

语法:

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:antialias=["true" | "false"]
    android:dither=["true" | "false"]
    android:filter=["true" | "false"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                      "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                      "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:mipMap=["true" | "false"]
    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />

 

android:antialias

是否启用抗锯齿功能

android:dither

是否启用抖动效果

抖动:图像的抖动处理,当每个颜色值以低于8位表示时,对应图像做抖动处理可以实现在可显示颜色总数比较低(比如256色)时还保持较好的显示效果

android:filter 

是否允许对位图进行滤波。对位图进行收缩或者延展使用滤波可以获得平滑的外观效果。

android:gravity

类型:关键字。定义位图的重力(gravity),如果位图小于其容器,使用重力指明在何处绘制

必需是下面的属性,多个之间用  |  分隔。

top     将图像放置在容器的顶部,不改变图像大小 

bottom  将图像放置在容器的底部,不改变图像大小 

left    将图像放置在容器的左边,不改变图像大小 

right   将图像放置在容器的右边,不改变图像大小 

center_vertical  将图像放置在容器垂直方向中间,不改变图像的大小 

fill_vertical         将图像垂直方向拉伸,填满容器 

center_horizontal    将图像放置在容器水平方向中间,不改变图像大小 

fill_horizontal        将图像水平方向拉伸,填满容器 

center        将图像放置在容器的水平和垂直方向中间,不改变图像大小 

fill(默认)将图像水平方向和垂直方向拉伸,填满容器 

clip_vertical       附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.

垂直方向裁剪 

clip_horizontal    附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.

水平方向裁剪

android:mipMap

是否使用文理映射过滤提示

android:tileMode

定义平铺方式,当启用该属性时,gravity被忽略。

disabled  不启用平铺方式(默认)

clamp     复制边缘色彩

repeat    在水平和垂直两个方向重复整个图片 

mirror    在水平和垂直两个方向重复整个图片,相邻两行之间采用镜面效果

 

 

Nine-Patch

 九英寸图,一种可以指定拉伸缩小指定区域的图片,需要使用android提供的工具处理。

         文件位置:

res/drawable/filename.9.png

        对应资源类

 NinePatchDrawable.

资源引用

In Java: R.drawable.filename

In XML: @[package:]drawable/filename

 XML Nine-Patch 九英寸图的xml定义方式,其中可以指定是否支持抗锯齿 文件位置: res/drawable/filename.xml 对应资源类: NinePatchDrawable. 资源引用: In Java:  R.drawable.filename
In XML:  @[package:]drawable/filename 语法:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:dither=["true" | "false"] />
Layer List  将图像放置在一个有序的队列中中,队列中的每一个图像按照指定的顺序显示,最后一个图像显示在最上面。

猜你喜欢

转载自xxmy.iteye.com/blog/1997237