如何将背景图像添加到活动?

Posted

技术标签:

【中文标题】如何将背景图像添加到活动?【英文标题】:how to add background image to activity? 【发布时间】:2011-03-19 10:29:27 【问题描述】:

使用主题或 ImageView ?

【问题讨论】:

【参考方案1】:

在您的 xml 中使用 android:background 属性。如果要将其应用于整个活动,最简单的方法是将其放在布局的根目录中。所以如果你有一个 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_
    android:layout_ 
    android:background="@drawable/background">
</RelativeLayout>

【讨论】:

不幸的是,这可能会导致一些问题...确保它适用于您的主要活动,但如果您使用相同的 android:background="@drawable/background" 打开一个新活动,如在大多数情况下,当您旋转模拟器和某些设备时,如果您的 bgImg 是高分辨率,您将因“内存不足..”错误而崩溃。 @Sephy,你会如何处理这个问题?【参考方案2】:

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

(例如,这里为一个活动设置一个线性布局并为布局设置一个背景图像(即间接到一个活动))

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

【讨论】:

我注意到这样做对于 LinearLayout 来说效果很好,但对于 RelativeLayouts,我会遇到 OOM 错误。我已经阅读了大量的 decodeBitmap 帖子或 layout.invalidate() 帖子,或 Bitmap.recycle 帖子等...您如何使用 RelativeLayouts 将图像保留为应用程序的背景?我是否应该缓存将出现在多个活动中的任何图像?最佳做法是什么?【参考方案3】:

并且不要忘记在写完这些行之后清理你的项目,你会在你的 xml 文件中得到一个错误,直到你在 eclipse 中清理了你的项目:Project->Clean...

【讨论】:

【参考方案4】:

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

【讨论】:

我们必须使用哪个文件夹? @Jesvin【参考方案5】:

现在我们必须使用match_parent

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

【讨论】:

【参考方案6】:

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

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

【讨论】:

【参考方案7】:

ez方式:复制你的图片到这个位置:C:\Users\Your user name\AndroidStudioProjects\yourProjectName\app\src\main\res\drawable

并在您的 xml 文件中编写此代码:

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

</RelativeLayout>

在第 7 行写下您的文件名,例如 background

还有塔玛姆……

【讨论】:

以上是关于如何将背景图像添加到活动?的主要内容,如果未能解决你的问题,请参考以下文章

如何将背景图像添加到 XML 文件?

如何将背景图像添加到自适应卡片机器人框架

如何使用 swift 将相同的背景图像添加到我的 ios 应用程序中的所有视图?

如何将图像背景添加到不透明的文本中? [复制]

php 将后缩略图作为背景图像添加到任何div

如何将背景图像添加到 UICollectionView 将滚动和缩放单元格