我有一个图像,我创建的图像尺寸比它最有可能显示的尺寸大。假设它是 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"
而不是 alignParentTop
和 alignParentRight
,但我更喜欢这种方式。让我知道这个是否奏效。关于Android布局,按百分比调整大小并保持比例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4208689/