私はAndroid用のピアノアプリケーションを作っています。 xmlを使って、白いキーと黒いキーの2つの長方形のボタンを作った。普通のピアノのように2つの白いキーを重ねるには黒いキーが必要です。Androidの異なる状態のボタンが重なっています
私は2つの異なるdrawable xmlファイルを作成したボタンに対して、2つの異なる状態(押された状態と押し込まれていない状態)を持っています。黒いキーを押すと、正常に動作します。しかし、私が白いキーを押すと、新しい描画可能な形状が黒いキーと重なってしまいます。私は最後にそれを定義したので、
ノーマル
ホワイトは、デフォルトでは、黒鍵は、他の2つの白鍵の上にあり、私の知識から
を押しましたXML。たぶん私はそれを押すとき、ボタンのソースとして新しいdrawableファイルにアクセスしているので、上にビューを描画していますか?これを防ぐためにとにかくありますか?以下の各XMLファイルのコードを提供しました。助けてくれてありがとう!
主なXML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#ffcccccc"
android:gravity="top|center"
tools:context=".MainActivity">
<Button
android:layout_width="45dp"
android:layout_height="150dp"
android:layout_marginTop="100dp"
android:background="@drawable/wselector"
android:id="@+id/button1"
/>
<Button
android:layout_width="45dp"
android:layout_height="150dp"
android:layout_marginTop="100dp"
android:background="@drawable/wselector"
android:id="@+id/button2"
android:layout_toRightOf="@id/button1"
/>
<Button
android:layout_width="40dp"
android:layout_height="100dp"
android:layout_marginTop="100dp"
android:background="@drawable/selector"
android:id="@+id/button3"
android:layout_toRightOf="@id/button1"
android:layout_marginLeft="-20dp"
android:onClick="soundmmm"
/>
セレクタXML:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/wpressed"
android:paddingTop="10sp"></item>
<item android:drawable="@drawable/wnormal" android:layout_marginTop="50dp">
</item>
</selector>
押されていないXML:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shadow" />
<item android:bottom="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="#ffffffff"/>
</shape>
</item>
</layer-list>
プレストXML:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#00000000"/>
</shape>
</item>
<item android:top="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="#ffffffff" />
</shape>
</item>
</layer-list>
おそらく重複します。http://stackoverflow.com/questions/18074303/how-to-create-custom-shape-button-with-selector-in-android –