添加涟漪效果到Prgramatically添加的视图

时间:2017-03-12 07:27:41

标签: android android-layout android-view android-xml ripple

我有一个图像视图,由程序添加为:

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 个答案:

答案 0 :(得分:0)

  

为Prgramatically添加的视图添加Ripple效果

您可以从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>

答案 1 :(得分:0)

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));

试试这个而不是使用第三方进行涟漪。