背景图像放置

我试图设置我的根LinearLayout元素(这是设置为fill_parent在这两个维度)有一个背景图像,总是位于屏幕的左下angular,无论设备的方向。 如果有一些方法来设置背景图像的位置,比如使用“background-position:left bottom”可以用css做的那样,那将是非常好的。 但我没有看到在Android中实现这一点的方法。 有没有办法做到这一点?

谢谢您的帮助。

你必须在XML文件中创build一个可以用你的位图绘制的自定义位图(例如“res / drawables / my_drawable.xml”

<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/my_png_file" android:gravity="bottom|left" /> 

然后将这个可绘制的xml设置为您的视图的背景(“@ drawables / my_drawable”)。 然而,在Android网站中,可绘制XML格式的文档却很less,因此,如何自行解决这个问题绝非易事。

如果以编程方式find了一个优势:图像适合布局,而不是比它大。 没有理想的原因。

代码:

 Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT); LinearLayout layout = (LinearLayout) findViewById(R.id.background_root); layout.setBackgroundDrawable(bitmapDrawable); 

将你的LinearLayout包装到一个RelativeLayout中,并添加一个ImageView。 使用android:layout_alignParentBottom和android:layout_alignParentLeft,你可以把你的图像放在左下angular。

 <RelativeLayout android:id="@+id/relativeLayout" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:src="@drawable/my_image" /> <LinearLayout android:id="@+id/linearLayout" ... > 

确保ImageView是RelativeLayout的第一个在后台绘制图像的元素。

我的答案只是上述答案的更新如果您使用XML作为背景,则可能会出现纵横比问题

所以使用这个代码

 Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setGravity(Gravity.BOTTOM| Gravity.RIGHT| Gravity.FILL_HORIZONTAL); LinearLayout layout = (LinearLayout) findViewById(R.id.background_root); layout.setBackgroundDrawable(bitmapDrawable); 

Gravity.Fill_HORIZONTAL将适合你正在应用背景的布局的宽度,你也可以在XML文件中提到这一点,但正如我所说的,它会发生图像比例