Android Studioのtextviewとimageviewに波及効果を設定したいです。どうすればいいの?
Ref: http://developer.Android.com/training/material/animations.html 、
http://wiki.workassis.com/category/Android/android-xml/
<TextView
.
.
Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
/>
<ImageView
.
.
.
Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
/>
リップルをTextView/ImageViewのサイズに制限したい場合は、次のようにします。
<TextView
Android:background="?attr/selectableItemBackground"
Android:clickable="true"/>
(私はそれが良く見えると思います)
波及効果については以下の回答を参照してください。
textviewまたはビューのリップル:
Android:clickable="true"
Android:focusable="true"
Android:foreground="?android:attr/selectableItemBackgroundBorderless"
buttonまたはImageviewのリップル:
Android:foreground="?android:attr/selectableItemBackgroundBorderless"
あなたが使用することができます Android-ripple-background
開始効果
final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rippleBackground.startRippleAnimation();
}
});
アニメーションを停止する:
rippleBackground.stopRippleAnimation();
<TextView
Android:id="@+id/txt_banner"
Android:layout_width="match_parent"
Android:text="@string/banner"
Android:gravity="center|left"
Android:layout_below="@+id/title"
Android:background="@drawable/ripple_effect"
Android:paddingLeft="15dp"
Android:textSize="15sp"
Android:layout_height="45dp" />
これをdrawableに追加する
<?xml version="1.0" encoding="utf-8"?>
<!--this ribble animation only working for >= Android version 21-->
<ripple
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="@color/click_efect" />
これを試して。
これを試して。これは私のために働いています。
Android:clickable="true"
Android:focusable="true"
Android:background="?android:attr/selectableItemBackground"
上記の回答に加えて、UIエディタの警告を避けるためにフォーカス可能を追加しています。
Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
Android:focusable="true"
@Bikesh M Annur( here )が投稿したよく投票された解決策の場合、うまくいかない場合は、次のコマンドを使用してみてください。
<TextView
...
Android:background="?android:attr/selectableItemBackgroundBorderless"
Android:clickable="true" />
<ImageView
...
Android:background="?android:attr/selectableItemBackgroundBorderless"
Android:clickable="true" />
また、Android:clickable="true"
を使用するときはAndroid:focusable="true"
を追加します。
"クリック可能であると宣言されているがフォーカス可能であると宣言されていないウィジェットはキーボードからはアクセスできません。"
@Bikesh M Annurの回答に加えて、必ずサポートライブラリを更新してください。以前は23.1.1を使用していましたが、何も起こりませんでした。それを23.3.0に更新するとうまくいきます。
それとも、このライブラリ(アンドロイド9+)を使用しようとすることができます: RippleEffect
統合
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
使用法:
<com.andexert.library.RippleView
Android:id="@+id/more"
Android:layout_width="?android:actionBarSize"
Android:layout_height="?android:actionBarSize"
Android:layout_toLeftOf="@+id/more2"
Android:layout_margin="5dp"
rv_centered="true">
<ImageView
Android:layout_width="?android:actionBarSize"
Android:layout_height="?android:actionBarSize"
Android:src="@Android:drawable/ic_menu_edit"
Android:layout_centerInParent="true"
Android:padding="10dp"
Android:background="@Android:color/holo_blue_dark"/>
</com.andexert.library.RippleView>