Добавить Ripple Effect в Prgramatics добавленный вид
У меня есть представление изображения, которое добавляется программой как:
imagen = new ImageView(getApplicationContext());
Теперь я хочу применить к этому эффект ряби. У меня есть библиотека для волнового эффекта:
<com.skyfishjy.library.RippleBackground
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content"
app:rb_color="#0099CC"
app:rb_radius="32dp"
app:rb_rippleAmount="4"
app:rb_duration="3000"
app:rb_scale="6">
<ImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerInParent="true"
android:id="@+id/centerImage"
android:src="@drawable/demoImage"/>
</com.skyfishjy.library.RippleBackground>
В приведенном выше коде у меня есть представление изображения в XML, но мое представление изображения создается во время выполнения, так как я могу применить эффект ряби ко времени выполнения Imageview
2 ответа
Решение
Добавить Ripple Effect в Prgramatics добавленный вид
Вы можете раздуть представление из xml и программно добавить его в макет контейнера.
View inflatedLayout= getLayoutInflater().inflate(R.layout.my_view, null, false);
container.addView(inflatedLayout);
my_view.xml
<com.skyfishjy.library.RippleBackground
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content"
app:rb_color="#0099CC"
app:rb_radius="32dp"
app:rb_rippleAmount="4"
app:rb_duration="3000"
app:rb_scale="6">
<ImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerInParent="true"
android:id="@+id/centerImage"
android:src="@drawable/demoImage"/>
</com.skyfishjy.library.RippleBackground>
Создайте ripple.xml
в drawable
папка
ripple.xml:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorFocusedHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
затем
imagen.setBackground(context.getDrawable(R.drawable.ripple));
вместо этого попробуйте этот, чтобы использовать третью сторону для пульсации.