1

处理图像纵横比的正确和干净的方法是什么?

在我的应用程序中,如果我旋转屏幕,我会失去宽高比,并且我的图像看起来很难看 - 请查看这些图像比较我的应用程序和 Play 商店 - http://imgur.com/a/GriwP#0

这就是我正在做的事情:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_gravity="center" >

    <Button
        android:id="@+id/btnStark"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="2dp"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="@drawable/stark"
        android:gravity="center|bottom"
        android:layout_gravity="top" />

    <Button
        android:id="@+id/btnLannister"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="4dp"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="@drawable/stark"
        android:gravity="center|bottom"
        android:layout_gravity="top" />
</LinearLayout>

我应该如何处理高度?我应该设置一个固定值吗?或者有什么方法可以自动保持纵横比?

我使用的图像是 400x300 像素

4

2 回答 2

1

考虑使用ImageViews代替按钮 - 它们可以像按钮一样可点击。您可以使用该scaleType属性设置图像的缩放方式。

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

例如,使用 CENTER_INSIDE:

均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)都等于或小于视图的相应尺寸(减去填充)。

所以,像:

<ImageView
    android:id="@+id/btnStark"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="2dp"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_weight="1"
    android:src="@drawable/stark"
    android:scaleType="centerInside"
    android:gravity="center|bottom"
    android:layout_gravity="top" />

兰尼斯特总是偿还他的债务。

于 2013-06-25T15:19:11.573 回答
0

您可以尝试使用ImageButton而不是简单的Button,并尝试不同的ScaleType模式来选择更适合您的模式。

于 2013-06-25T15:19:16.520 回答