2011-03-11 21 views
0

首先,我可以说,我发现布置android UI是一个令人沮丧的体验?我曾经认为XML布局简单,干净,真棒,但每次我尝试做任何事情时,都会花几个小时尝试做最简单的事情!如何获得图像按钮的尺寸在android中有意义?

在这个特定的实例中,我试图制作一个简单的水平条,其中包含一个固定大小的图像按钮,在其右侧和左侧,我想要一个ImageView,它占用剩下的可用宽度。我一直在用户界面中看到类似的构造:搜索时出现在屏幕顶部的搜索框,文本区域和用于撰写文本/ googletalk消息的发送按钮等。

我试过了水平线性布局和相对布局,我无法让按钮在任何一个中都看起来很正确。我的最新尝试,具有以下布局代码:

它看起来像这样:

Screnshot

使用hiearchyviewer表明,无论是ImageView的和按钮有相同的高度(45px)。它显示的视图尺寸和位置正是我正在寻找的。相同的高度(当然,因为ImageView更宽,所以宽度不同)。它们紧挨着对方,以相对布局为中心。然而,屏幕上绘制的按钮显然不占用完整的ImageButton视图。我在想这是用于ImageButton背景的android系统9patch drawable的奇怪之处。但是我知道什么?无论我尝试什么,我都无法让它看起来正确。

回答

0

你是如何设置RelativeLayout的?尝试设置它是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"> 
    <ImageButton android:layout_width="wrap_content" android:src="@drawable/icon" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:id="@+id/imgButton"></ImageButton> 
    <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:src="@drawable/red_button" android:scaleType="fitXY" android:layout_alignBottom="@+id/imgButton" android:layout_alignTop="@+id/imgButton" android:layout_toLeftOf="@+id/imgButton"></ImageView>   
</RelativeLayout> 

希望这会有所帮助。

+0

正如我之前提到的那样,布局会导致层次结构查看器中视图的尺寸和位置正确,但按钮在设备上查看时仍然没有正确的尺寸。自从我决定为按钮背景制作我自己的9贴片可绘图,而且这似乎奏效了。它看起来像系统九贴片按钮可绘制在图像本身底部有一些填充。 – rushinge 2011-03-12 21:12:27

0

如果尺寸正是你在找的方式,那么在ImageButton和ImageView中,使用android:scaleType =“fitXY”并检查。

对于简单的情况,我可能会使用linearlayout水平方向与两个按钮在适当的权重。

+0

你会认为这会很简单吗?我已经设法让按钮背景尺寸适合现在的尺寸,但是我无法将图片放在ImageButton中,它总是出现在顶部。我试过fitXY,它仍然不居中。 – rushinge 2011-03-12 21:08:55