加权时Android ImageViews无法正常工作

时间:2011-07-26 18:30:44

标签: android xml imageview weighting

这条XML将正确显示一个覆盖整行的按钮,然后是2个按钮,均匀加权并共享50%的空间,如下所示:

__________________________
|________________________|
||       ButtonA        ||
||______________________||
|____________ ___________|
|| ButtonB  | | ButtonC ||
||__________| |_________||
|________________________|

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_height="fill_parent" android:layout_width="fill_parent">
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent"
 android:layout_weight="1">
    <Button android:id="@+id/b_a"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button A" />
</TableRow>
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent"
 android:layout_weight="1">
    <Button android:id="@+id/b_b"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button B" />
    <Button android:id="@+id/b_c"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button C" />
</TableRow>

我想用一个ImageView替换Button A,它将像当前的Button A一样延伸。但是,当您将ButtonA替换为:

<ImageView android:id="@+id/img_a"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src=@drawable/imagename />

这会影响按钮B和C的加权,使按钮B覆盖大部分屏幕并使C真正被压扁。它似乎与图像的尺寸有关(我使用的是320x50)。

__________________________
|________________________|
||       Image A        ||
||______________________||
|___________________ ____|
|| ButtonB          ||bC||
||__________________||__||
|________________________|

如何插入此ImageView而不影响表行的其余部分?

1 个答案:

答案 0 :(得分:0)

我认为你对layout_weight的使用有点过于自由了。这是一个用于在布局中具有多个项目的选项,需要根据屏幕大小动态调整大小(就像您使用按钮B和C一样)。我会摆脱你的layout_weights的其余部分,因为他们基本上没有做任何事情,可能有一些潜在的时髦行为。此外,layout_weight是项目大小与屏幕的比率,范围为0-1。按钮B和C都希望为它们分配100%的水平空间。因此,我认为您的问题是按钮B的优先级高于按钮C.尝试将这两个项目的layout_weight更改为0.5,这样他们每个都希望分配50%的空间。让我知道这对你有用!