1.tileMode(平铺)属性:
它的效果为让背景用同一张图重复使用铺满整个画布,而不是一张图拉伸后铺满整个画布。它有三个属性值:
repeat:重复使用;
mirror:和repeat相似,不同的是每两行图以镜面倒映的方式显示
clamp: 保持原图不变
repeat效果:
mirror效果:
页面布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/repeat">
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:dither="true"
android:tileMode="repeat" >
</bitmap>
public static void setBackGroupdRepeat(View view,Context context,int iconId){
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), iconId);
BitmapDrawable bd = new BitmapDrawable(bitmap);
bd.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
bd.setDither(true);
view.setBackground(bd);
}
2: dither(抖动)属性
Dither(图像的抖动处理,当每个颜色值以低于8位表示时,对应图像做抖动处理可以实现在可显示颜色总数比较低(比如256色)时还保持较好的显示效果。
它不仅在xml属性中使用,Paint类中也有此属性:paint.setDither(true);