0

我已经查看了有关此主题的先前问题,但似乎没有一个有效。我有一个水平方向的线性布局,其中有两个(应该是)完美的方形 ImageButton。线性布局成功地跨越了屏幕的宽度,并且 ImageButtons 的宽度是完美的;但是,它们的渲染高度是应有的高度的两倍。我已经尝试使用 fitStart 和 fitEnd 以及 fitXY 的 scaleTypes 并且它们仍然呈现相同 - 就好像他们看到父级的宽度并使用它来计算它们的缩放高度而不考虑其他对象的宽度一样在线性布局中。所以我最终得到了两个 2:1 纵横比按钮,并使用以下代码:

<LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_margin="10dp"
        android:scaleY="1"
        android:orientation="horizontal"
        >

        <ImageButton
            android:id="@+id/button2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/tapdat_tap2"
            android:scaleType="fitXY"/>

        <ImageButton
            android:id="@+id/button3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="0dp"
            android:layout_weight="1"
            android:background="@drawable/tapdat_nottap"
            android:scaleType="fitXY"/>

    </LinearLayout>

此外,我尝试在线性布局标签中放置一个 scaleY=".5" 并以正确的高度呈现,但是它留下了大量不可用的空间,其中多余的高度被切除,其他内容无法填充。(我也尝试将这个 scaleY 单独放在 ImageButtons 上,结果相同。)

4

1 回答 1

0

这是因为您没有以任何方式设置高度,并且比例取决于宽度。

// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
// Changes the height and width to the specified *pixels*
params.height = layout.getWidth();
于 2013-08-21T13:35:18.050 回答