How to make an app's background image repeat How to make an app's background image repeat android android

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 ListViews 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.