1

状態を変更するimageButtonを作成しようとしています。だから私は「btn_marisa」と呼ばれるxmlファイルを作りました:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/btn_marisa_bg_on" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_marisa_bg"/> <!-- default -->

</selector>

ImageButtonでレイアウトを作成したよりも、それがコードです。

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageButton2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/imageButton2"
    android:adjustViewBounds="true"
    android:src="@drawable/marisa_logo"
    android:background="@drawable/btn_marisa"
    android:scaleType="fitStart" />

何らかの理由で、日食(グラフィックレイアウト)では問題ないように見えますが、電話にインストールすると背景のみが表示されます。状態も大丈夫ですが、背景に表示する必要のある画像が表示されません。アイコンと背景のあるボタンで、背景だけで状態を変更したい。私は何が欠けていますか?ありがとう!

4

2 に答える 2

1

それはうまくいくはずです。

ただし、最初に、ソース画像@drawable/marisa_logoが背景画像よりも小さいことを確認してbtn_marisa_bg_on/btn_marisa_bgください。そうしないと、画像が背景全体に重なってしまい、背景の状態がいつ変化するかを確認できなくなります。

また、この属性も削除してみてください。 android:scaleType="fitStart"これにより、元の画像が引き伸ばされ、背景が見えなくなります。

于 2012-09-06T08:07:05.960 に答える
0

ImageButton の代わりに Button を試してください。android:src を削除し、android:background だけを残します。ほとんどの場合、これで十分です。試してみて、必要なものが表示されるかどうかを確認してください。

ImageButton に背景とソースが本当に必要な場合は、最初に私の提案が機能するかどうかを確認してから、変更を 1 つずつ追加してください。

于 2012-09-06T08:07:36.813 に答える