How to make an app's background image repeat
Ok, here's what I've got in my app. It includes a hack to prevent ListView
s from going black while scrolling.
drawable/app_background.xml:
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/actual_pattern_image" android:tileMode="repeat" />
values/styles.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <style name="app_theme" parent="android:Theme"> <item name="android:windowBackground">@drawable/app_background</item> <item name="android:listViewStyle">@style/TransparentListView</item> <item name="android:expandableListViewStyle">@style/TransparentExpandableListView</item> </style> <style name="TransparentListView" parent="@android:style/Widget.ListView"> <item name="android:cacheColorHint">@android:color/transparent</item> </style> <style name="TransparentExpandableListView" parent="@android:style/Widget.ExpandableListView"> <item name="android:cacheColorHint">@android:color/transparent</item> </style></resources>
AndroidManifest.xml:
//<application android:theme="@style/app_theme">//
There is a property in the drawable xml to do it.android:tileMode="repeat"
See this site:http://androidforbeginners.blogspot.com/2010/06/how-to-tile-background-image-in-android.html
Here is a pure-java implementation of background image repeating:
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg_image); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); LinearLayout layout = new LinearLayout(this); layout.setBackgroundDrawable(bitmapDrawable);}
In this case, our background image would have to be stored in res/drawable/bg_image.png.