我看到许多应用程序使用全屏图像作为背景。 这是一个例子:
我想在项目中使用它,到目前为止我发现的最好的方法是使用大尺寸的图像,将其放在ImageView
中并使用android: adjustViewBounds="true"
调整边距
问题在于,如果屏幕分辨率很高,则图像不足。
我想到的另一个选项是使用FrameLayout
中的图片,match_parent
中的width
和height
作为背景...这会拉伸图片,但是我认为结果并不是很好。
你会怎么做?
答案 0 :(得分:210)
有几种方法可以做到。
选项1:
为不同的dpi创建不同的完美图像,并将它们放在相关的可绘制文件夹中。然后设置
android:background="@drawable/your_image
选项2:
添加单个大图像。使用FrameLayout。作为第一个孩子,添加ImageView
。在ImageView中设置以下内容。
android:src="@drawable/your_image"
android:scaleType = "centerCrop"
答案 1 :(得分:25)
另一个选择是在drawable中添加一个单独的图像(不一定很大)(让它命名为backgroung.jpg),在xml的根目录下创建一个ImageView iv_background,而不需要" src&# 34;属性。 然后在相应活动的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);
没有裁剪,没有很多不同大小的图像。 希望它有所帮助!
答案 2 :(得分:18)
您应该将各种尺寸的图像放入以下文件夹
有关详细信息,请访问此link
LDPI
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>
答案 3 :(得分:7)
怎么样?
android:background="@drawable/your_image"
关于活动的主要布局?
通过这种方式,您可以将不同的图像放在相应的res/drawable-**dpi
文件夹中,以获得不同的屏幕密度。
答案 4 :(得分:6)
使用此
android:background="@drawable/your_image
在您的活动中,第一个线性或相对布局。
答案 5 :(得分:6)
如果您希望图像显示为透明操作栏,请将以下内容放入主题的样式定义中:
<item name="windowActionBarOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
享受!
答案 6 :(得分:4)
自发布以来已经有一段时间了,但这对我有所帮助。
您可以使用嵌套布局。从RelativeLayout开始,然后将ImageView放入其中。
将height和width设置为match_parent以填充屏幕。
设置scaleType =&#34; centreCrop&#34;因此图像适合屏幕并且不会伸展。
然后您可以像往常一样放入任何其他布局,例如下面的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>
答案 7 :(得分:1)
在NoToast的答案中,您需要在res / drawable-ldpi,mdpi,hdpi,x-hdpi(对于xtra大屏幕)中有多个版本的“your_image”,删除match_parent < / strong>并保持 android:adjustViewBounds =“true”
答案 8 :(得分:1)
在Relativelayout / Linearlayout中添加android:background="@drawable/your_image"
工作
答案 9 :(得分:0)
如果您将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>
答案 10 :(得分:-1)
工作。你应该试试这个:
android:src="@drawable/img"
答案 11 :(得分:-1)
three step for put background
1)您应该选择自己喜欢的图片。例如:enter image description here
2)然后以可绘制方式复制此图片。 警告:您应该选择名称图片的缩写。
3)您转到xml预期页面并编写:
android:background =“ id图片” 例如我的图片ID是@ drawable / download。
完成。
答案 12 :(得分:-2)
最简单的方法:
第1步:打开AndroidManifest.xml文件
第2步:找到android:theme="@style/AppTheme" >
第3步:更改为android:theme="@style/Theme.AppCompat.NoActionBar" >
第4步:然后添加ImageView和图片
第4步:就这样!