Android Studio에서 textview 및 imageview에 파급 효과를 설정하고 싶습니다. 내가 어떻게 해?
Android Studio에서 textview 및 imageview에 파급 효과를 설정하고 싶습니다. 내가 어떻게 해?
답변:
참조 : 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"
/>
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbc
잔물결을 TextView / ImageView의 크기로 제한하려면 다음을 사용하십시오.
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(더 좋아 보인다)
selectableItemBackground
대selectableItemBackgroundBorderless
잔물결 효과에 대해서는 아래 답변을 참조하십시오.
Textview 또는 뷰에서 리플 :
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
버튼 또는 이미지 뷰에 리플 :
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
API 21 이상 임을 유의하십시오 . 아래에서 selectableItemBackground
호환성 문제를 피할 수 있습니다
안드로이드 리플 배경을 사용할 수 있습니다
시작 효과
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" />
이것을 드로어 블에 추가하십시오
<?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"
@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"
add를 사용할 때 android:focusable="true"
다음과 같은 이유로 인해
" 클릭 가능하다고 선언되었지만 포커스 가능하도록 선언되지 않은 위젯은 키보드를 통해 액세스 할 수 없습니다. "
더하다
android:clickable="true"
android:focusable="true"
잔물결 효과
android:background="?attr/selectableItemBackgroundBorderless"
선택 가능한 효과
android:background="?android:attr/selectableItemBackground"
버튼 효과
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
또는이 라이브러리 (android 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>
selectableItemBackground
Android 4 이상을 타겟팅 할 때 사용할 수 있습니다 .