0

我有这个ShapeableImageView我想处理点击事件但没有看起来很糟糕的涟漪效应,因为容器和按钮一样小,并且没有空间让效果很好地扩展。所以,我想禁用它以获得不同的自定义效果。

<com.google.android.material.imageview.ShapeableImageView
    android:id="@+id/button_round"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="2dp"
    android:adjustViewBounds="true"
    android:src="@drawable/dw_image"
    android:scaleType="centerCrop"
    android:contentDescription="@string/button_round"
    android:focusable="false"
    android:clickable="false"
    android:foreground="?android:attr/selectableItemBackground"
    android:background="@null"
    app:layout_constraintDimensionRatio="1:1"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:shapeAppearanceOverlay="@style/Theme.MyApp.RoundCorner"
    app:strokeWidth="2dp"
    app:strokeColor="@color/timber_green"   />

我像这样处理点击

findViewById<ShapeableImageView>(R.id.button_profile).setOnClickListener { view ->
    (view as ShapeableImageView).setStrokeColorResource(R.color.tasman)
}

我的问题是,即使我设置了focusableand clickableas false,似乎设置点击侦听器也会启用涟漪效应。我可以让点击监听器没有那种效果吗?

奇怪的是,设置android:background成我自己的涟漪效果文件,它不起作用,效果仍然是默认的。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/timber_green" android:radius="12dp">
<item
    android:id="@android:id/mask"
    android:drawable="@android:color/holo_red_dark" />
</ripple>

<!-- in my layout -->
android:background="@drawable/ripple_effect"
4

0 回答 0