Android 如何通过设备保持图像比率?

Android 如何通过设备保持图像比率?,android,android-studio,Android,Android Studio,我正在编写一个简单的纸牌游戏,但是我的模拟器和我自己的手机的图像不一样。 我尝试了android:src=“@drawable/card\u a”和android:background=“@drawable/card\u a”,但没有成功。下面是一些屏幕截图来解释: -在android:src中,它显示非常小的图像 我希望在我的手机中的模拟器上看到相同的显示。问题似乎不是图像背景,而是包含此图像的视图。可能您应该在所有视图中使用android:weight=“1”,并将所有这些图像视图放置在水

我正在编写一个简单的纸牌游戏,但是我的模拟器和我自己的手机的图像不一样。 我尝试了
android:src=“@drawable/card\u a”
android:background=“@drawable/card\u a”
,但没有成功。下面是一些屏幕截图来解释:

-在android:src中,它显示非常小的图像


我希望在我的手机中的模拟器上看到相同的显示。

问题似乎不是图像背景,而是包含此图像的视图。可能您应该在所有视图中使用
android:weight=“1”
,并将所有这些图像视图放置在水平方向的线性布局中。

您可以在布局文件中添加
android:scaleType=“FitInCenter”

您可以像这样使用线性布局权重:

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
android:weight_sum="5" >

            <ImageView
                android:id="@+id/card1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

            <ImageView
                android:id="@+id/card2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

            <ImageView
                android:id="@+id/card3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

            <ImageView
                android:id="@+id/card4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

            <ImageView
                android:id="@+id/card5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

        </LinearLayout>


通过这种方式,您将始终获得5个相同宽度的视图。

发布布局文件