2014-01-29 6 views
1

Я пытаюсь создать xml для фона макета. Вот код:Как повторить фоновое изображение в Android

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
      <solid android:color="@android:color/transparent" /> 
      <stroke android:width="2dp" android:color="@color/text_color" /> 
     </shape> 
    </item> 
    <item android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp"><bitmap android:src="@drawable/paper_texture" android:tileMode="repeat" /> 
    </item> 
</layer-list> 

Я раздуваю макет и устанавливаю этот xml в качестве фона. Проблема в том, что когда я пишу макет с помощью xml, он работает хорошо, но когда я раздуваю его программно, фоновое изображение не повторяется и вместо этого подходит для всего макета.

ответ

0

Когда вы устанавливаете фон с помощью макета, макет раздувается до режима повтора, потому что он знает правильный размер для заполнения. Когда вы раздуваете программно, надуватель не знает, какую высоту надуть, чтобы вы не получили режим повтора. Когда вы размещаете завышенное изображение в качестве фона, у него нет выбора, кроме как растягиваться. Вы можете попытаться установить parentView при раздувании.

LinearLayout ll = (LinearLayout) findViewById(R.id.customWrapper); 
View view; 
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.custom, ll); 

Таким образом, надуватель знает, какую высоту/ширину необходимо заполнить.

Надеюсь, это поможет.

Смежные вопросы