9

ボタンに次のセレクターを使用したい:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/jobs" android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="5dp" />
        </shape>
<scale android:scaleHeight="90%" android:scaleWidth="90%" />
    </item>
    <item android:drawable="@drawable/jobs"></item>

</selector>

しかし、うまくいきません。ボタンの角を丸くして、同じドローアブルでサイズを 10% 小さくしたい。実際には、単一のドローアブルを使用してボタンを押した効果を与えたいと考えています。出来ますか?

4

1 に答える 1

21

ステート ロジックとドローアブル コードを分離するのが最善だと思います。Android ドキュメントから: http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

<?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/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

次に、角を丸くするコードを別の描画可能な XML に配置します。で直接そのようなことを行うことさえできるかどうかはわかりませんselector

于 2012-08-08T14:32:09.493 に答える