我的按钮看起来像横向的顶部图像:
screenshot http://i46.tinypic.com/33zb9dj.jpg
我希望它看起来像底部图像。
这是我的这些按钮的.xml代码。
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:weightSum="1.0" >
<ImageButton
android:id="@+id/appHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:background="@null"
android:contentDescription="Home"
android:cropToPadding="true"
android:scaleType="fitEnd"
android:src="@drawable/home_bar" />
<ImageButton
android:id="@+id/menuHome"
android:layout_weight="0"
android:background="@null"
android:contentDescription="Menu"
android:cropToPadding="true"
android:scaleType="center"
android:src="@drawable/menu_bar" />
<ImageButton
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:background="@null"
android:contentDescription="Back"
android:cropToPadding="true"
android:scaleType="fitStart"
android:src="@drawable/back_bar" />
</TableRow>
答案 0 :(得分:7)
你不能用默认按钮,按钮9个补丁中有一个填充(两者,全息和前全息按钮)。 您可以看到here。
如果你想要没有填充的按钮,那么你将不得不修改9个补丁并创建你自己的主题:
<style name="myTheme" parent="....">
<item name="imageButtonStyle">@style/myImageButton</item>
</style>
和你的imageButtonStyle:
<style name="myImageButton" parent="Widget.ImageButton">
<item name="android:background">@drawable/myCostomizedNinePatchSelectorWithoutPadding</item>
</style>
答案 1 :(得分:2)
我最终通过将TableLayout切换为LinearLayout来解决此问题。这是我的代码,除非有其他人遇到这个问题:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" >
<ImageButton
android:id="@+id/appHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription="Home"
android:scaleType="fitEnd"
android:src="@drawable/home_bar_grey" />
<ImageButton
android:id="@+id/menuHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription="Menu"
android:onClick="menuhome"
android:scaleType="fitCenter"
android:src="@drawable/menu_bar" />
<ImageButton
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription="Back"
android:scaleType="fitStart"
android:src="@drawable/exit_bar" />
</LinearLayout>
答案 2 :(得分:1)
//将android:weightSum
使用宽度移除为match_parent
//为所有imageButton
提供android:layout_weight="1"
//对所有
使用android:scaleType="fitXY"
<TableRow
android:id="@+id/tableRow7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
<ImageButton
android:id="@+id/appHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:contentDescription="Home"
android:cropToPadding="true"
android:scaleType="fitXY"
android:src="@drawable/home_bar" />
<ImageButton
android:id="@+id/menuHome"
android:layout_weight="0"
android:background="@null"
android:contentDescription="Menu"
android:layout_weight="1"
android:cropToPadding="true"
android:scaleType="fitXY"
android:src="@drawable/menu_bar" />
<ImageButton
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:contentDescription="Back"
android:cropToPadding="true"
android:scaleType="fitXY"
android:src="@drawable/back_bar" />
</TableRow>
答案 3 :(得分:0)
在xml中的ImageButton
上使用负填充以缩小使用的填充。
android:paddingLeft="-5dip"
android:paddingRight="-5dip"
请注意,以上只是一个示例...您需要根据具体情况调整数字以使事情看起来正确。
答案 4 :(得分:0)
创建自己的9补丁图像以移除边距的更简单的替代方法是将背景设置为null。
例如,将以下内容添加到res / styles.xml:
<style name="MarginlessImageButton" parent="android:Widget.ImageButton">
<item name="android:background">@null</item>
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:imageButtonStyle">@style/MarginlessImageButton</item>
</style>
现在,您应该发现所有ImageButtons都没有边距,无论是以XML格式定义还是以编程方式创建。