Android Studio'da metin görünümü ve görüntü görünümü üzerinde bir dalgalanma efekti ayarlamak istiyorum. Nasıl yapabilirim?
Android Studio'da metin görünümü ve görüntü görünümü üzerinde bir dalgalanma efekti ayarlamak istiyorum. Nasıl yapabilirim?
Yanıtlar:
Referans: 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
Dalgalanmanın TextView / ImageView boyutuna bağlı olmasını istiyorsanız şunu kullanın:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(Bence daha iyi görünüyor)
selectableItemBackground
VsselectableItemBackgroundBorderless
Dalgalanma etkisi için lütfen aşağıdaki cevaba bakın.
Metin görünümünde veya görünümünde dalgalanma:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
Düğme veya Görüntü Görünümünde dalgalanma:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
API 21+ olduğuna dikkat edin . Aşağıda selectableItemBackground
uyumluluk sorunundan kaçınmayı seçebilirsiniz
Sen kullanabilirsiniz android-dalga-arka plan
Başlatma Etkisi
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();
}
});
Animasyonu durdur:
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" />
bunu çekmeceye ekle
<?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" />
bunu dene.
bunu dene. Bu benim için çalıştı.
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
Yukarıdaki cevaplara ek olarak, UI editörünün uyarısını önlemek için odaklanabilir ekleniyor
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
@ Bikesh M Annur ( burada ) tarafından yayınlanan iyi oylanmış bir çözüm sizin için işe yaramazsa, kullanmayı deneyin:
<TextView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
<ImageView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
Ayrıca, android:clickable="true"
add kullanırken android:focusable="true"
çünkü:
" Tıklanabilir olduğu bildirilen ancak odaklanılabilir olduğu bildirilmeyen bir widget'a klavye aracılığıyla erişilemez. "
Ekle
android:clickable="true"
android:focusable="true"
Dalgalanma Etkisi İçin
android:background="?attr/selectableItemBackgroundBorderless"
Seçilebilir Efekt İçin
android:background="?android:attr/selectableItemBackground"
Düğme efekti için
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
@Bikesh M Annur'un cevabına ek olarak, destek kitaplıklarınızı güncellediğinizden emin olun. Daha önce 23.1.1 kullanıyordum ve hiçbir şey olmadı. 23.3.0'a güncellemek hile yaptı.
daire dalgalanması için:
android:background="?attr/selectableItemBackgroundBorderless"
dikdörtgen dalgalanma için:
android:background="?attr/selectableItemBackground"
Veya bu kitaplığı kullanmayı deneyebilirsiniz (android 9+): RippleEffect
bütünleşme
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
Kullanımı:
<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
olduğundan, Android 4 ve üstünü hedeflerken buna bağlı kalabilirsiniz .
Kitaplıkları kullanma. Bu onlardan biri. Dalgalanma etkisi gerektiren her öğeden önce bağımlılığını ekleyin ve aşağıdaki kodu xml olarak koyun:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">