在我的Activity的布局中,有一个背景,应该由Y重复。重复背景没有问题,当它在X和Y上重复时(只需添加android:tileMode="repeat"
)。此外,在Android API 15上面执行此操作也没有问题:
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上不可用&lt; 16。
当我想在Android 2.3中仅通过X或Y重复我的背景时,我该怎么办?
谢谢。
附:背景的宽度和高度均为MATCH_PARENT
。
答案 0 :(得分: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_parent
或fill_parent
将同时平铺X和Y.
答案 1 :(得分: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);