2

どうぞ。押されていない状態の背景が透明なボタンがあります。ボタンを押すとすぐに、背景は透明ではなくなります (写真を参照)。すべての画像に 9 つのパッチを使用しています。

これは私のセレクタです:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/starfighterstartbtndown" android:state_pressed="true"/>
    <item android:drawable="@drawable/starfighterstartbtn"/>
</selector>

そして、ここにレイアウトがあります:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/mainMenuImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"
    android:src="@drawable/starfighter" >

</ImageView>

<RelativeLayout
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="20dp"
    android:orientation="horizontal" >

    <ImageButton
        android:id="@+id/btnStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:hapticFeedbackEnabled="true"
        android:src="@drawable/startselector" >

    </ImageButton>

    <ImageButton
        android:id="@+id/btnExit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:clickable="true"
        android:src="@drawable/exitselector"
        android:background="@android:color/transparent"
        android:hapticFeedbackEnabled="true" >
    </ImageButton>

</RelativeLayout>

クリックされていない:

クリックされていません

クリック:

クリックした

次の方法も試してみましたが、うまくいきませんでした

button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);

onClickListener() 内で次のことも試しました

view.getBackground().setAlpha(0);
view.setBackgroundColor(Color.TRANSPARENT);
button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);

まだ運がありません。幸運を :)

4

3 に答える 3

7

押されていない状態でボタンの背景を透明にするには、セレクターを次のようにする必要があります。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/starfighterstartbtndown" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>

また、xml での imageButton の宣言では、セレクターを背景として使用し、imageButton のソースとして何も作成しないでください。

<ImageButton
        android:id="@+id/btnStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:src="@drawable/startselector"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:hapticFeedbackEnabled="true" />
于 2013-07-15T02:05:36.333 に答える
0

Color.argb() を使用できます。それぞれが 0 から 255 の範囲の 4 つの int パラメーターを取ります。

アルファ 50% の青いボタンが必要だとします。

button.setBackgroundColor(Color.argb(125, 0, 0, 255));
于 2014-02-28T16:52:58.883 に答える
-1

これを試すこともできます

<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="?attr/selectableItemBackground"/>
于 2015-11-05T10:03:51.543 に答える