2012-08-13 46 views
2

在我的活動的佈局有一個背景,這應該由Y.重複沒有與重複的背景下,當它被重複X和Y沒問題(剛加入android:tileMode="repeat")。此外,還有用這樣更高版本的Android API 15沒有問題:僅適用於Android TileMode X OR Y?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.container_layout); 

BitmapDrawable bg = (BitmapDrawable)getResources().getDrawable(R.drawable.my_repeating_bg); 
bg.setTileModeX(TileMode.REPEAT);` 
layout.setBackground(bg); 

但這種方法setBackground(<BitmapDrawable>)是不是可以在Android API 我應該怎麼做時,我想只有X或重複我的背景由Y在Android 2.3? 謝謝。 P.S.背景的寬度和高度都是MATCH_PARENT

回答

4

好了,我找到了答案。我只需要檢查版本並使用適當的方法。

RelativeLayout layout = (RelativeLayout) fragmentView.findViewById(R.id.container); 
    BitmapDrawable bg = (BitmapDrawable)fragmentView.getResources().getDrawable(R.drawable.background); 
    bg.setTileModeY(TileMode.REPEAT); 
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) 
     layout.setBackgroundDrawable(bg); 
    else 
     layout.setBackground(bg); 
5

您可以在drawable文件夾中的XML文件(或文件夾繪製真的),這是在這種格式。

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

然後做:

layout.setBackgroundResource(R.drawable.name_of_xml_drawable); 

如果佈局的寬度設置爲wrap_content,只有Y將被平鋪。如果佈局的高度設置爲wrap_content,則只有X會平鋪。這兩個設置爲match_parentfill_parent意志瓦X和Y.

+0

如果我想拉伸X'es,所以我的背景將覆蓋所有屏幕,我想通過Y重複這些拉伸行? – lomza 2012-08-13 13:46:50

+0

你不能用瓷磚和背景做到這一點。在這種情況下,將您的'BitmapDrawable'設置爲整個View背景中的'ImageView'。你需要把它放在一個'RelativeLayout'或其他可以重疊的佈局中。 – DeeV 2012-08-13 14:04:06