2014-02-24 70 views
0

我想擴展線性佈局類,並改變它的一些屬性。 我想改變的屬性之一是背景。擴展LinearLayout

屬性背景將設置爲某些東西,如果此背景比視圖的高度短,我希望它被垂直重複。

如果在構造函數中我使用getBackground()我得到設置爲視圖的背景。 但是,當我試圖平鋪它時,它顯示出很好的一次,但是它應該重複的所有位置,它只是被污染了。

我如何獲得視圖的ResourceID背景而不是背景圖片,所以我可以在沒有「超級」的情況下處理它。方法被首先調用?

+0

發佈可能的示例代碼,以便有人可以查看它並可以建議你! –

+0

您可以在AttributeSet參數 – Blackbelt

+0

中找到id,您不必擴展LinearLayout,您需要創建一個自定義Drawable:class RepeatDrawable extends Drawable – pskink

回答

0

如果您擴展LinearLayout的唯一原因是設置重複背景或非重複背景,則不需要擴展LinearLayout。

您可以從一個excisting繪製對象使用繪製的XML文件重複的背景:

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

根據您的「狀態」,你可以在的LinearLayout的背景設置爲你選擇。

+0

問題是我想僅垂直重複背景,而不是水平方向,似乎我的背景寬度爲540和719(2個不同的圖像相同) 並且我在屏幕的右側,圖像的一些重複,我不想要的,我想要圖像水平拉伸和垂直平鋪。 –

+0

@LenaBru所以擴展Drawable,你可以在draw()方法中做任何你想做的事情 – pskink

+0

但是我會在我的繪圖方法中寫什麼? –