我看到许多应用程序使用全屏图像作为背景。这是一个例子:
我想在项目中使用它,到目前为止,我发现最好的方法是使用大尺寸的图像,将其放在中ImageView
并用于android: adjustViewBounds="true"
调整边距
问题是,如果屏幕的分辨率很高,则图像不足。
我想到的另一种选择是在FrameLayout
,match_parent
in width
和height
作为背景中使用图像...这会拉伸图像,但我认为结果不是很好。
你会怎么做?
我看到许多应用程序使用全屏图像作为背景。这是一个例子:
我想在项目中使用它,到目前为止,我发现最好的方法是使用大尺寸的图像,将其放在中ImageView
并用于android: adjustViewBounds="true"
调整边距
问题是,如果屏幕的分辨率很高,则图像不足。
我想到的另一种选择是在FrameLayout
,match_parent
in width
和height
作为背景中使用图像...这会拉伸图像,但我认为结果不是很好。
你会怎么做?
Answers:
有几种方法可以做到。
选项1:
为不同的dpi创建不同的完美图像并将它们放置在相关的可绘制文件夹中。然后设置
android:background="@drawable/your_image"
选项2:
添加单个大图像。使用FrameLayout。作为第一个孩子,添加一个ImageView
。在ImageView中设置以下内容。
android:src="@drawable/your_image"
android:scaleType = "centerCrop"
另一种选择是在可绘制对象中添加单个图像(不一定大)(将其命名为backgroung.jpg),在xml的根目录下创建一个ImageView iv_background,而没有“ 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);
没有裁剪,没有许多不同大小的图像。希望能帮助到你!
您应该将各种尺寸的图像放入以下文件夹
有关更多详细信息,请访问此链接
分辨率
分辨率
分辨率
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>
Unexpected namespace prefix "xmlns" found for tag RelativeLayout
自发布以来已经有一段时间了,但这对我有所帮助。
您可以使用嵌套布局。从RelativeLayout开始,然后将ImageView放在其中。
将高度和宽度设置为match_parent来填充屏幕。
设置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>
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>
加工。您应该尝试一下:
android:src="@drawable/img"
最简单的方法:
步骤1:打开AndroidManifest.xml文件
步骤2:找到 android:theme="@style/AppTheme" >
步骤3:变更为 android:theme="@style/Theme.AppCompat.NoActionBar" >
步骤4:然后添加ImageView和图像
步骤4:就这样!
android:scaleType="centerCrop"