私はFloatingActionButtonリップルを this のようなものに設定しようとしています
マテリアルデザインから。
問題は、波紋のない「フラットスタイル」のみを取得することです。上の例のリンクに示されているアニメーションなしで、ボタンを白からオレンジに変更するだけです。
私はここで答えに従いました:
サポートライブラリを使用したFloatingActionButtonの例
しかし、私のFABはまだ退屈です!
編集:私の現在のコードは:XML:
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/item_activity_fab"
Android:layout_width="64dp"
Android:layout_height="64dp"
Android:layout_marginRight="16dp"
Android:src="@drawable/watch"
app:borderWidth="0dp"
app:elevation="6dp"
app:fabSize="normal"
app:layout_anchor="@id/item_activity_title_background"
app:layout_anchorGravity="top|right|end"
app:pressedTranslationZ="12dp"
app:rippleColor="@Android:color/transparent"/>
Java:
mAddToWatchListFAB.setRippleColor(ContextCompat.getColor(this, R.color.orange_6));
FABでその方法を試しましたが、うまくいかなかったようです。私も提供したリンクの手順を試しました
次の2つのプロパティをフローティングアクションボタンのxmlコードに追加します
app:rippleColor="@color/textcolor"
Android:clickable="true"
fABをクリック可能にすると、リップルカラーが追加されます
あなたが私のようにそれを実装することができます Gabriele Mariotti
あなたはこのようなことをすることができます:
<Button Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:background="@drawable/ripple" />
Ripple.xmlは次のとおりです。
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:color="?android:colorControlHighlight"> <item Android:id="@Android:id/mask"> <shape Android:shape="oval"> <solid Android:color="?android:colorAccent" /> </shape> </item> </ripple>
here で述べたように、これはすべてのリップルのニーズに適用できます。
[〜#〜]更新[〜#〜]
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/item_activity_fab"
Android:layout_width="64dp"
Android:layout_height="64dp"
Android:layout_marginRight="16dp"
Android:src="@drawable/watch"
Android:background="@drawable/ripple"
app:borderWidth="0dp"
app:elevation="6dp"
app:fabSize="normal"
app:layout_anchor="@id/item_activity_title_background"
app:layout_anchorGravity="top|right|end"
app:pressedTranslationZ="12dp"/>
そして、上記のripple.xmlを使用します。とても簡単!あなたがする必要があるのはマスクすることです:)
更新2
API 20以下の場合、波及効果を実装するオプションがあります。 Marcin Orlowski が言っている次のヒントをチェックしてください
幸い、すでに利用可能なカスタム実装はほとんどありません。
古いバージョンのAndroidと互換性のあるMaterlialをテーマにしたウィジェットセットを含みます。
これらのいずれかを試してみたり、他の「マテリアルウィジェット」でグーグルしたりすることができます...
トランスペアレントを使用する代わりに、以下を使用してみてください:
app:rippleColor="@color/colorAccentLight"
colorAccentLightは、現在のアクセントカラーの明るいアクセントです。私の場合、私は使用しました:
<color name="colorAccent">#E040FB</color>
<color name="colorAccentLight">#E1BEE7</color>
colors.xmlファイル内...または、テストのために、常に現在のアクセントカラー以外のランダムな色に設定することもできます。
<!--change this to any color-->
app:rippleColor="@Android:color/transparent"
<!-- try this line instead above -->
app:rippleColor="@color/colorPrimary"
Android:clickable="true"
あなたの波紋の色は透明です。波紋は正常に表示されていると思いますが、見えないので見えません。
解決策については、この回答を参照してください。