Android View设置RippleDrawable可编程地产生较小的波纹

mi7gmzs6  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(122)

我有下面的TextView与涟漪:

<ImageView
    android:id="@+id/imageView"
    android:padding="8dp"
    android:background="?attr/selectableItemBackgroundBorderless"
    android:layout_width="wrap_content"
    android:src="@drawable/ic_android_black_24dp"
    android:layout_height="wrap_content"/>

如果我点击它,它看起来像这样:

但是,在移除背景时:

-    android:background="?attr/selectableItemBackgroundBorderless"

以及使用以下以编程方式设置涟漪:

val rippleDrawable = RippleDrawable(
  ColorStateList.valueOf(0x33FFFFFF.toInt()),
  null,
  ShapeDrawable(OvalShape())
)
binding.imageView.background = rippleDrawable

我得到一个较小的涟漪:

有谁知道为什么以及如何在使用RippleDrawable时从第一个涟漪得到完全相同的大小?

rqdpfwrv

rqdpfwrv1#

正如Mike M.解决方案是使用null而不是ShapeDrawable(OvalShape())来使涟漪无界:

val rippleDrawable = RippleDrawable(
  ColorStateList.valueOf(0x33FFFFFF.toInt()),
  null,
  null
)

相关问题