WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Android
システム開発
[Android][Kotlin]ボタンカスタマイズ
システム開発担当のTFです。
※Android10対応(他バージョンの場合、細かい部分等が異なる事があります)
やり方
- 状態に合わせたボタンのデザインを記述した、xmlを作成する
- 作成したxmlをButtonのbackgroundに当てる
- ButtonのbackgroundTintをnullにする
参考
【Android】Buttonのデザインを変更する【Java/Kotlin】
[Android] shapeを使ってカスタムボタン作成
Android UI基本 Buttonをカスタマイズする
Android ボタンにxmlファイルのデザイン内容が反映されない時の対処(マテリアルデザインの無効)
サンプル
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- ボタン押下時 -->
<item android:state_pressed="true">
<!-- 矩形 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="rectangle">
<!-- 角丸 -->
<corners android:radius="4dp" />
<!-- 塗りつぶし色 -->
<solid android:color="@color/green_pressed_background" />
</shape>
</item>
<!-- ボタンを押していない時 -->
<item android:state_pressed="false">
<!-- 矩形 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="rectangle">
<!-- 角丸 -->
<corners android:radius="4dp" />
<!-- 塗りつぶし色 -->
<solid android:color="@color/green_background" />
</shape>
</item>
</selector>
<!-- ボタンに作成したデザインを当てる -->
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:background="@drawable/custom_button"
android:text="ボタン"
app:backgroundTint="@null"
/>