我为Galaxy S9 +屏幕比例(几乎为2:1)的应用程序准备了背景图片,这样它对于所有屏幕尺寸都足够大。然后,我通过以下方式定义了背景可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background"
android:gravity="fill_horizontal"
android:tileMode="disabled">
</bitmap>
然后我按如下方式使用它:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bind="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activities.GameActivity">
<data>
<variable
name="viewModel"
type="..." />
</data>
<FrameLayout
android:id="@+id/g_viewPlaceholder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/activity_background">
</FrameLayout>
</layout>
当我在比率类似于SGS9 +的设备上运行应用程序时,背景似乎是正确的。但是,当我在运行该应用程序时(例如屏幕比例为16:9的Galaxy S6),背景会被垂直压缩(即使底部和顶部的部分都被切除了-按设计)。
如何将背景设置为水平拉伸并垂直切割,但要保持宽高比?
答案 0 :(得分:2)
尝试低于该代码。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background"
android:gravity="clip_vertical|fill_horizontal"
android:tileMode="disabled">
</bitmap>
如果这不起作用,请尝试调整“布局重力”以垂直裁剪