我正在尝试为布局的背景制作一个xml。这是代码:
<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 :(得分:0)
使用布局设置背景时,布局会膨胀到重复模式,因为它知道要填充的正确尺寸。当您以编程方式进行充气时,inflater不知道将其充气的高度,因此您将无法获得重复模式。当您将膨胀的视图作为背景放置时,它别无选择,只能伸展。您可以尝试的是在充气时设置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);
这样,inflater知道需要填充的高度/宽度。
希望这有帮助。