4

我想以编程方式设置 TextView 对象的背景,但也有涟漪效应。

我可以将背景设置为android:selectableItemBackground,但设置背景时,涟漪效果会丢失。

我还尝试将 a与in放在ImageView一起。并将图像设置为 的背景,而不是 的图像:是的,波纹是存在的,但它似乎在图像的“后面”。TextViewFrameLayoutTextViewImageView

我需要RippleDrawable从位图为背景创建一个吗?我该怎么做?

4

2 回答 2

5

我和你有同样的问题,并
android:foreground="?attr/selectableItemBackground"在 FrameLayout 上使用它修复了它。

这是示例框架布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/more"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:foreground="?attr/selectableItemBackground">
    <ImageView
        android:id="@+id/discover_carousel_item_image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical|center_horizontal"
        android:scaleType="fitXY" />
</FrameLayout>
于 2015-06-19T07:00:01.213 回答
0

RippleDrawable 是解决方案:

RippleDrawable newImage = new RippleDrawable(
        new ColorStateList(
                new int[][]{
                        new int[]{android.R.attr.state_pressed},
                        new int[]{}
                },
                new int[] {
                        getResources().getColor(R.color.ripple_material_light),
                        getResources().getColor(R.color.ripple_material_dark),
                }),
                new BitmapDrawable(getResources(), mapBitmap),
                null);
textView.setBackground(newImage);
于 2014-12-20T15:43:10.860 回答