一、重复图片的平铺利用 -- BitmapDrawable.java
使用XML方式平铺,简单、固定
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:antialias="true"
android:dither="true"
android:src="@drawable/ic_launcher"
android:tileMode="repeat" >
</bitmap>
1.antialias 是否启用抗锯齿功能 2.dither 是否启用抖动效果 抖动:图像的抖动处理,当每个颜色值以低于8位表示时,对应图像做抖动处理可以实现在可显示颜色总数比较低(比如256色)时还保持较好的显示效果 3.filter 是否允许对位图进行滤波。对位图进行收缩或者延展使用滤波可以获得平滑的外观效果。 4.gravity[与tileMode同时使用失效] top 将图像放置在容器的顶部,不改变图像大小 bottom 将图像放置在容器的底部,不改变图像大小 left 将图像放置在容器的左边,不改变图像大小 right 将图像放置在容器的右边,不改变图像大小 center_vertical 将图像放置在容器垂直方向中间,不改变图像的大小 fill_vertical 将图像垂直方向拉伸,填满容器 center_horizontal 将图像放置在容器水平方向中间,不改变图像大小 fill_horizontal 将图像水平方向拉伸,填满容器 center 将图像放置在容器的水平和垂直方向中间,不改变图像大小 fill(默认) 将图像水平方向和垂直方向拉伸,填满容器 clip_vertical 附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部,垂直方向裁剪. clip_horizontal 附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.水平方向裁剪 5.mipMap 是否使用文理映射过滤提示 6.tileMode 图片的显示模式: disabled 默认值,表示不使用平铺 clamp 复制边缘色彩 repeat X、Y 轴进行重复图片显示,也就是我们说要说的平铺 mirror 在水平和垂直方向上使用交替镜像的方式重复图片的绘制 7.autoMirrored 当layout direction 改变是,是否自动镜像图 |
代码实现平铺,更为灵活,不太方便
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.bg_tile);
BitmapDrawable drawable = new BitmapDrawable(bitmap);
drawable.setTileModeXY(TileMode.CLAMP, TileMode.REPEAT);
drawable.setDither(true);
getWindow().getDecorView().setBackgroundDrawable(drawable);
二、层叠图片的堆加 -- LayerDrawable.java
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="0dp"
android:drawable="@drawable/background"
android:left="0dp"
android:right="0dp"
android:top="0dp">
</item>
<item
android:bottom="50dp"
android:drawable="@drawable/head"
android:left="50dp"
android:right="50dp"
android:top="50dp">
</item>
<item
android:bottom="100dp"
android:drawable="@drawable/ic_launcher"
android:left="100dp"
android:right="100dp"
android:top="100dp">
</item>
</layer-list>
三、嵌入性边距图片 -- InsetDrawable.java
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/background"
android:insetBottom="200dp"
android:insetLeft="100dp"
android:insetRight="200dp"
android:insetTop="100dp"
android:visible="true" >
</inset>
四、多级图片选择 -- LevelListDrawable.java
setLevel()来设定图片
<?xml version="1.0" encoding="utf-8"?>
<level-listxmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/status_off"
android:maxLevel="0"/>
<item
android:drawable="@drawable/status_on"
android:maxLevel="1"/>
</level-list>
等等