8

横向きの一番上の画像のようなボタンがあります。

スクリーンショット

下の画像のように見せたいです。

これらのボタンの.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>
4

6 に答える 6

8

デフォルトのボタンではそれを行うことはできません。ボタン9パッチにはパディングがあります(ホロボタンとプレホロボタンの両方)。あなたはここでそれを見ることができます。

パディングなしのボタンが必要な場合は、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>
于 2012-12-31T20:46:30.050 に答える
1

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>

于 2013-01-03T19:57:45.957 に答える
1

マージンを削除するために独自の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>

XMLで定義されているかプログラムで作成されているかに関係なく、すべてのImageButtonのマージンがゼロであることがわかります。

于 2013-07-12T10:13:01.427 に答える
0

ImageButton使用するパディングを縮小するには、xmlで負のパディングを使用します。

android:paddingLeft="-5dip"
android:paddingRight="-5dip"

上記は単なる例であることに注意してください...物事が正しく見えるように、特定のケースに合わせて調整するために数字をいじる必要があります。

于 2012-12-31T20:11:14.893 に答える
0

//android:weightSum使用幅を次のように削除しますmatch_parent

//android:layout_weight="1"すべてのimageButtonに与える

//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>
于 2012-12-31T21:30:36.697 に答える
0

プロパティを使用するscaleTypeと、同じサイズのアイコンが表示されますImageButton

于 2021-12-09T13:01:25.610 に答える