activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@drawable/bitmap_xml" >
</RelativeLayout>
bitmap_xml.xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:antialias="true"
android:src="@drawable/beauty1"
android:tileMode="repeat" >
</bitmap>
MainActivity.java
package com.sean.bitmapxml;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
这里个人觉得实用性很强的是android:tileMode这个属性。
repeat
mirror
clamp
disabled
还要解释下android:dither这个属性的作用——图像的抖动处理,当每个颜色值低于8位表示时,对应图像做抖动处理可以实现在显示颜色总数比较低(比如256色)时还保持较好的显示效果。
上面使用XML文件实现的Bitmap,还可以在代码中实现,此时要用到BitmapDrawable类。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.beauty1);
BitmapDrawable bd = new BitmapDrawable(bitmap);
bd.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
bd.setDither(true);
view.setBackgroundDrawable(bd);