在我的 Activity 的布局中,a 有一个背景,应该由 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 < 16 上不可用。
Android 2.3 中只想按X 或按Y 重复背景怎么办?
谢谢。
附言背景的宽高都是MATCH_PARENT
.
最佳答案
您可以在 drawable
文件夹(或任何真正的 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。
关于仅限 Android TileMode X 或 Y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11934845/