3

背景として描画可能なセレクターが設定されたボタンがありました。

button_sign_in_background.xml

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

<item android:drawable="@drawable/button_sign_in_background_selected" android:state_focused="true" />
<item android:drawable="@drawable/button_sign_in_background_selected" android:state_pressed="true" />
<item android:drawable="@drawable/button_sign_in_background_selected" android:state_selected="true" />
<item android:drawable="@drawable/button_sign_in_background_normal" />

</selector>

button_sign_in_background_normal.xml

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

<corners android:radius="@dimen/abc_control_corner_material" />
<solid android:color="@color/color_primary" />
</shape>

button_sign_background_selected.xml

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

<corners android:radius="@dimen/abc_control_corner_material" />
<solid android:color="@color/color_primary_dark" />
</shape>

API 21 と API 10 の 2 つの異なるデバイスでテストしました。 背景button_sign_in_background.xmlは API 10 では表示できませんが、API 21 デバイスでは動作します。

次のように色を直接使用するとbutton_sign_in_background.xml、両方のデバイスが機能します。しかし、これは私が必要とする効果ではありません。私が望むのは、ボタンを囲む小さな半径のコーナーです。

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

<item android:drawable="@color/color_primary_dark" android:state_focused="true" />
<item android:drawable="@color/color_primary_dark" android:state_pressed="true" />
<item android:drawable="@color/color_primary_dark" android:state_selected="true" />
<item android:drawable="@color/color_primary" />

</selector>

それは古いAndroidデバイスの互換性の問題ですか?

どうすれば解決できますか?どんな種類のコメントと回答も大歓迎です。

4

2 に答える 2

0

小さい半径のコーナー ボタンが必要な場合、以下のコードは API 10 から Lollipop まで問題ありません。

btn_done_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@drawable/shape_round_normal"/>
    <item android:state_pressed="true" android:drawable="@drawable/shape_round_pressed"/>
</selector>

shape_round_normal.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
    <solid android:color="@color/color_56b8e9"/>
    <corners android:radius="4dp"/>
</shape>

shape_round_pressed.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
    <solid android:color="@color/color_3ba2e1"/>
    <corners android:radius="4dp"/>
</shape>

応募するボタン

LinearLayoutボタンとして使っています。

<LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:id="@+id/linearLayoutButtonReply"
            android:layout_centerVertical="true"
            android:background="@drawable/btn_done_background"
            android:clickable="true"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:paddingRight="10dp">
    <ImageView
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:id="@+id/imageViewReply"
                android:layout_marginRight="5dp"
                android:layout_marginEnd="5dp"
                android:duplicateParentState="true"
                android:src="@drawable/ic_card_btn_answer"/>

    <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textViewReplyCount"
                android:duplicateParentState="true"
                android:textColor="@android:color/white"
                android:textSize="13sp"
                android:text="@string/ReplyEmpty"
                />
</LinearLayout>
于 2015-04-09T03:07:34.603 に答える