1. ホーム
  2. アンドロイド

[解決済み】カスタムサークルボタン

2022-04-09 17:56:21

質問

カスタムボタンを作成したいのですが、円形である必要があります。円形のボタンを作成するにはどうしたらよいですか? draw9patchでは不可能だと思います。

また、カスタムボタンの作り方がわかりません。

何かご提案がありますか?

解決方法は?

xmlのdrawableはこのように使用します。

以下の内容を round_button.xmldrawable フォルダ

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape android:shape="oval">
            <solid android:color="#fa09ad"/>
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="#c20586"/>
        </shape>
    </item>
</selector>

Androidのマテリアル効果。 とはいえ FloatingActionButton の方が良いのですが、xml セレクタを使って行う場合は、フォルダ drawable-v21res を保存し、別の round_button.xml に、以下のxmlを追加します。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#c20586">
    <item>
        <shape android:shape="oval">
            <solid android:color="#fa09ad"/>
        </shape>
    </item>
</ripple>

の背景として設定します。 Button をxmlで書くと、このようになります。

<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="hello"
android:textColor="#fff" />

重要です。

  1. これらの状態(有効、無効、ハイライトなど)をすべて表示させたい場合は、セレクタを次のように使用します。 ここで説明されている .
  2. 描画の後方互換性を保つために、両方のファイルを保持する必要があります。そうしないと、以前のバージョンのアンドロイドで奇妙な例外に直面することになります。