在我的Android应用程序中,我有一个GridView,它显示一组图像,每个图像都在ImageView(TickedImageView)的自定义子类中,在选择图像时显示勾号。 我想要实现的是在触摸图像时显示纹波。我试过设置背景
name
没有运气,还添加了具有此背景的包装布局,但似乎没有任何效果。
我的代码如下:
?android:attr/selectableItemBackground
每个GridView项目的布局如下:
<GridView
android:id="@+id/photos_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="2dp"
android:numColumns="@integer/photos_grid_num_columns"
android:stretchMode="columnWidth"
android:verticalSpacing="2dp"
android:layout_below="@id/spinner_toolbar" />
ImageView子类(TickedImageView)如下:
<utils.TickedImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/thumb"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground"
android:focusable="true"
android:clickable="true" />
谢谢。
答案 0 :(得分:1)
要添加涟漪效果,请添加以下内容:
步骤1:创建形状(drawable / defaultBackground.xml)
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorAccent" />
<stroke
android:width="3dp"
android:color="@color/colorAccent" />
<corners android:radius="8dp" />
显然,您可以根据自己的需要进行定制。这将是我们的默认背景。
步骤2:创建波纹背景(drawable / rippleBackground.xml)
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/selectedRed">
<item android:drawable="@drawable/defaultBackground"/>
再次,您可以将颜色更改为您需要的颜色。
第3步:在视图中添加纹波:
<utils.TickedImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/thumb"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rippleBackground"
android:focusable="true"
android:clickable="true" />