Androidのダイヤラーアプリで何かの検索を開始し、EditTextの左側にある矢印ボタンをクリックすると、円形の波紋効果が表示されます。
私もそれを試してみましたが、長方形のものを手に入れました:
<ImageButton
Android:id="@+id/navButton"
Android:layout_width="40dp"
Android:layout_height="40dp"
Android:layout_gravity="center_vertical"
Android:layout_marginLeft="8dp"
Android:background="?android:attr/selectableItemBackground"
Android:src="@drawable/search_ic_back_arrow"/>
クリックされたときにボタンに円形の波紋効果を持たせるにはどうすればよいですか?新しいドロウアブルを作成する必要がありますか、それともその方法が組み込まれていますか?
すでに背景画像がある場合、selectableItemBackgroundBorderlessに近い波紋の例を次に示します。
<ImageButton
Android:id="@+id/btn_show_filter_dialog"
Android:layout_width="24dp"
Android:layout_height="24dp"
Android:background="@drawable/ic_filter_state"/>
ic_filter_state.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:state_pressed="true"
Android:state_enabled="true"
Android:drawable="@drawable/state_pressed_ripple"/>
<item
Android:state_enabled="true"
Android:drawable="@drawable/ic_filter" />
</selector>
state_pressed_ripple.xml:(白い背景で不透明度を10%に設定)1AFFFFFF
<?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="oval">
<solid Android:color="#1AFFFFFF"/>
</shape>
<color Android:color="#FFF"/>
</item>
</ripple>
AppCompatテーマを使用している場合、ビューの背景を次のように設定できます。
Android:background="?selectableItemBackgroundBorderless"
これにより、21以上で円形のリップルが追加され、21以下で正方形の背景が追加されます。
特にアクションバー用の、ラウンドリップル効果を持つ別の属性:
Android:background="?actionBarItemBackground"
背景としてリップルドローアブルを作成して設定します。このようなもの。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="@color/grey_15">
<item Android:id="@Android:id/mask">
<shape Android:shape="oval">
<solid Android:color="?android:colorPrimary"/>
</shape>
<color Android:color="@color/white"/>
</item>
</ripple>
XmlのAndroid:radius
属性を使用して、円リップル描画可能を作成できます。
例:
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="your_color"
Android:radius="your_radius" />
your_radius
はビューの幅と高さよりも小さくする必要があることに注意してください。たとえば、サイズが60dp x 60dp
のビューがある場合、your_radius
は30dp
(width/2またはheight/2)に近いはずです。
Android 5.0以降で動作します。
この背景をビューに追加してください"Android:background=?android:attr/actionBarItemBackground"
より一般的なXMLファイルが必要な場合、2つのファイルがあります。
1)btn_ripple_backgroundコード付き:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:state_pressed="true"
Android:state_enabled="true"
Android:drawable="@drawable/ripple_circular_shape"/>
</selector>
2)ripple_circuler_shapeコードあり:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="@color/btn_state_pressed_text_color"
Android:shape="oval">
<solid Android:color="@color/btn_state_pressed_text_color" />
</shape>
最後に使用法:Android:foreground="@drawable/ripple_btn_background"