当前位置: 代码迷 >> Android >> android中drawable之(1)
  详细解决方案

android中drawable之(1)

热度:82   发布时间:2016-04-28 07:01:54.0
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

?将图像放置在一个有序的队列中中,队列中的每一个图像按照指定的顺序显示,最后一个图像显示在最上面。

文件位置:

res/drawable/filename.xml

对应资源类:

?LayerDrawable.

资源引用:

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

语法:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
? ?
xmlns:android="http://schemas.android.com/apk/res/android">
? ?
<item
? ? ? ?
android:drawable="@[package:]drawable/drawable_resource"
? ? ? ?
android:id="@[+][package:]id/resource_name"
? ? ? ?
android:top="dimension"
? ? ? ?
android:right="dimension"
? ? ? ?
android:bottom="dimension"
? ? ? ?
android:left="dimension"/>
</layer-list>

?

  相关解决方案