web-dev-qa-db-ja.com

Androidでテキストビューまたはイメージビューに波及効果を設定する方法

Android Studioのtextviewとimageviewに波及効果を設定したいです。どうすればいいの?

98
Vasant

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"
/>
228
Bikesh M

リップルをTextView/ImageViewのサイズに制限したい場合は、次のようにします。

<TextView
Android:background="?attr/selectableItemBackground"
Android:clickable="true"/>

(私はそれが良く見えると思います)

63
Micro

波及効果については以下の回答を参照してください。

textviewまたはビューのリップル:

Android:clickable="true"
Android:focusable="true"
Android:foreground="?android:attr/selectableItemBackgroundBorderless"

buttonまたはImageviewのリップル:

Android:foreground="?android:attr/selectableItemBackgroundBorderless"
8
Vasant

あなたが使用することができます 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();
7
IntelliJ Amiya
<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" />

これを試して。

5

これを試して。これは私のために働いています。

Android:clickable="true"
    Android:focusable="true"
    Android:background="?android:attr/selectableItemBackground"
4
Juboraj Sarker

上記の回答に加えて、UIエディタの警告を避けるためにフォーカス可能を追加しています。

Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
Android:focusable="true"
4
Zafer Celaloglu

@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"を追加します。

"クリック可能であると宣言されているがフォーカス可能であると宣言されていないウィジェットはキーボードからはアクセスできません。"

3
Filipe Brito

@Bikesh M Annurの回答に加えて、必ずサポートライブラリを更新してください。以前は23.1.1を使用していましたが、何も起こりませんでした。それを23.3.0に更新するとうまくいきます。

2
Mark Pazon

それとも、このライブラリ(アンドロイド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>
1
walkmn