活动中的全屏幕背景图像

我看到许多应用程序使用全屏图像作为背景。 这是一个例子:

Full screen background image

我想在一个项目中使用这个,到目前为止我发现的最好的方法是使用一个大尺寸的图像,把它放在一个 ImageView和使用 android: adjustViewBounds="true"来调整边距

问题是,如果屏幕分辨率非常高,图像就会出现短缺。

我想到的另一个选择是在 FrameLayout中使用图像,在 widthheight中使用 match_parent作为背景... 这样可以拉伸图像,但我认为效果不是很好。

你会怎么做?

461604 次浏览

关于什么

android:background="@drawable/your_image"

你的主要活动布局是什么?

通过这种方式,您还可以通过将不同的图像放置在适当的 res/drawable-**dpi文件夹中来获得不同屏幕密度的图像。

有几种方法可以做到这一点。

选择1:

为不同的 dpi 创建不同的完美图像,并将它们放置在相关的可绘制文件夹中

android:background="@drawable/your_image"

选择2:

添加一个大图像。使用 FrameLayout。作为第一个子级添加一个 ImageView。在你的 ImageView 中设置以下内容。

android:src="@drawable/your_image"
android:scaleType = "centerCrop"

根据 NoToast 的答案,您需要在 res/draable-ldpi,mdpi,hdpi,x-hdpi (用于超大屏幕) ,移除 match _ father和保持 调整 ViewBounds = “ true”中有多个版本的“ your _ image”

您应该将不同大小的图像放入下面的文件夹

详情请访问此 链接

  • 低密度脂蛋白

  • Mdpi

  • Hdpi

  • Xhdpi

  • Xxhdpi

并使用 RelativeLayout 或 LinearLayout 背景,而不是使用 ImageView 作为下面的例子

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


</RelativeLayout>

另一种选择是在可绘制文件中添加一个图像(不一定很大)(让我们把它命名为 backgroung.jpg) ,在 xml 的根目录中创建一个 ImageView iv _ back,不带“ src”属性。 然后在相应活动的 onCreate 方法中:

    /* create a full screen window */
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_activity);


/* adapt the image to the size of the display */
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(
getResources(),R.drawable.background),size.x,size.y,true);


/* fill the background ImageView with the resized image */
ImageView iv_background = (ImageView) findViewById(R.id.iv_background);
iv_background.setImageBitmap(bmp);

没有裁剪,没有许多不同大小的图像。 希望能有帮助!

用这个

android:background="@drawable/your_image"

在你的活动非常第一线性或相对布局。

如果你的背景图片是 bg.png,那么简单来说:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
tools:context=".MainActivity" >


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"/>
</RelativeLayout>

如果你想让你的图片显示在一个透明的动作栏后面,在你的主题的样式定义中加入以下内容:

<item name="android:windowActionBarOverlay">true</item>

好好享受吧!

工作,你应该试试这个:

android:src="@drawable/img"

在相对布局/线性布局中添加 android:background="@drawable/your_image" 成功了。

这个已经有一段时间没有发布了,但是这个帮助了我。

您可以使用嵌套布局。

将 height 和 width 设置为 match _ father 以填充屏幕。

设置 scaleType = “ centreCrop”,使图像适合屏幕,不会拉伸。

然后您可以像通常那样放入任何其他布局,比如下面的 LinearLayout。

您可以使用 android: alpha 来设置图像的透明度。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">


<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/image"
android:alpha="0.6"/>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"/>


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="There"/>


</LinearLayout>
</RelativeLayout>

最简单的方法:

步骤1: 打开 AndroidManifest.xml 文件

你可以在这里看到文件!

步骤2: 定位 android:theme="@style/AppTheme" >

步骤3: 更改为 android:theme="@style/Theme.AppCompat.NoActionBar" >

步骤4: 添加 ImageView 和 Image

第四步: 就是这样!

three step for put background

1)你应该选择你喜欢的图片。例如: 在此输入图像描述

2)然后你把这幅画复制成可画的形式。 警告: 您应该为名称图片选择类型缩写。

在此输入图像描述

3)进入 xml 目标页面,写下:

机器人: 例如,我的图片 ID 是@draable/download。

在此输入图像描述

完成。