2012-06-26 11 views
7

私は水平にタイルしたい画像があり、プログラムでそれを行う必要があります。私は2つの方法を試みましたが、どちらもうまくいきません。Androidはプログラムで背景を画像にタイルします

button_inner_shadow画像 navigation_backgroundタイルに上記画像

1を想定するXMLである:タイル画像直接

BitmapDrawable navigationBackground = new BitmapDrawable(BitmapFactory.decodeResource(
       getResources(), R.drawable.button_inner_shadow)); 
navigationBackground.setTileModeX(Shader.TileMode.REPEAT); 
navigationTextViews[id].setBackgroundDrawable(navigationBackground); 

2:タイル画像にXMLを使用

navigationBackground = new BitmapDrawable(BitmapFactory.decodeResource(
       getResources(), R.drawable.navigation_background)); 
navigationTextViews[id].setBackgroundDrawable(navigationBackground); 

navigation_background

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:dither="true" 
    android:src="@drawable/button_inner_shadow" 
    android:tileMode="repeat" /> 

私は間違っていますか?

私はまた、setBackgroundResourceを使用して、プログラムの別の部分で背景色を変更して、それが問題であると考えました。私はnavigationTextViews[id].setBackgroundResource(0);を追加しました。バックグラウンドリソースを削除する必要があり、それは私が使用した上記のソリューションでは動作しません。

EDIT:navigationTextViewsは[] TextViews

+0

エラーが発生しましたか?logcatを投稿してください。 –

+0

私はエラーになりません。 – heero

答えて

3

まあの配列は、何らかの理由で、最初のオプションは、異なるイメージで働いているので、私はこの問題を推測していますが持つ勾配である私の最初のイメージ(ということです一部の透明性)が透明すぎる。