我有一个图像,我创建的图像尺寸比它最有可能显示的尺寸大。假设它是 200x200。我正在横向模式下的 800x480 设备上进行测试。我的目标是将此图像调整为当前 View 高度的 1/4,停靠在右上角,并保持纵横比。这意味着当以 800x480 观看时,我的图像将在右上角以 120x120 显示。

我认为这样做的方法是在元素之间使用带有 weightSum 和 layout_weights 的垂直 LinearLayout(如果需要,使用带有 layout_weight 的空元素进行填充)并在 ImageView 上使用 adjustViewBounds=true,但我无法获得效果我去争取有任何想法吗?

最佳答案

你甚至不必担心 weightSum 或 adjustViewBounds,我不认为。不过,您应该走在正确的轨道上。试试这个(未经测试的)布局,看看它是否能得到你的结果:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
    <ImageView
        android:id="@+id/qtr_img"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src="@drawable/your_image"
        android:scaleType="fitCenter"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        />
    <View
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        />
</LinearLayout>

这只是在图像下方放置一个空 View ,加权占据屏幕的 3/4,而 ImageView 占据剩余的 1/4。您也可以使用 layout_gravity="right|top" 而不是 alignParentTopalignParentRight ,但我更喜欢这种方式。让我知道这个是否奏效。

关于Android布局,按百分比调整大小并保持比例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4208689/

10-09 03:15