如何为活动添加背景图片?


Answers:


127

使用android:backgroundXML中的属性。要将其应用于整个活动的最简单方法是将其放在布局的根目录中。因此,如果您将RelativeLayout作为xml的开头,则将其放在此处:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootRL"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/background">
</RelativeLayout>

6
不幸的是,这可能会导致一些问题...确保它可以用于您的主要活动,但是如果您使用相同的android:background =“ @ drawable / background”打开一个新活动,则只要在大多数情况下旋转模拟器情况以及某些设备上,如果您的bgImg为高分辨率,则会崩溃并显示“内存不足..”错误。@Sephy,您将如何处理此问题?
whyoz 2013年

14

您可以通过如下设置android:backgroundxml属性来将“背景图片”设置为活动:

(例如,在此处为一个活动采用LinearLayout并为该布局设置背景图片(即间接与活动相关))

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:background="@drawable/icon">
 </LinearLayout>

1
我注意到,这样做对于LinearLayout来说效果很好,但是对于RelativeLayouts,我会看到OOM错误。我已经阅读了很多解码位图帖子或layout.invalidate()帖子或Bitmap.recycle帖子等...如何使用RelativeLayouts将图像作为应用程序的背景持久化?我是否应该缓存将出现在多个活动中的任何图像?最佳做法是什么?
whyoz 2013年

2

将图像放在可绘制的文件夹中。drawable文件夹位于res中。drawable有5种变体drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi drawable-xxhdpi


我们必须使用哪个文件夹?@Jesvin
jdyg 2014年

1

如今,我们必须使用match_parent

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/background">
</RelativeLayout>

在此处输入图片说明


1

我们可以使用ImageView轻松地将背景图像放置在PercentFrameLayout中。我们必须将scaleType属性设置为value =“ fitXY”,并且在前景中还可以显示其他视图,例如textview或button。

 <android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        >
        <ImageView
            android:src="@drawable/logo"
            android:id="@+id/im1"
            android:scaleType="fitXY"
            android:layout_height="match_parent"
            android:layout_width="match_parent"/>
<EditText android:layout_gravity="center_horizontal"
        android:hint="Enter Username"
        android:id="@+id/et1"
        android:layout_height="wrap_content"
        app:layout_widthPercent="50%"
        app:layout_marginTopPercent="30%"
        />
<Button
    android:layout_gravity="center_horizontal"
    android:text="Login"
    android:id="@+id/b1"
    android:layout_height="wrap_content"
    app:layout_widthPercent="50%"
    app:layout_marginTopPercent="40%"/>
</android.support.percent.PercentFrameLayout>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.