如何快速制作带圆角的ImageView?
How to quickly make ImageViews with rounded corners?
所以,我看到这是一个常见问题,许多用户找到了很多解决这个问题的方法。
最常见的建议解决方案是创建一个自定义视图,其中设置了一种“圆角”属性,以便使图像的角变圆。
另一种建议的解决方案是导入一些第三方包来实现一个现成的自定义视图来实现圆形图像。
没有错,但是没有更简单的解决方案来获得圆形 ImageView 吗?
解决方案其实很简单,但还没有被建议那么多。
几个月前,我正在寻找一个简单的解决方案来获得一个圆形的 ImageView,但我所能找到的都是复杂的解决方案。
我正在写这个答案,因为这不是每个人都知道的(并且这个解决方案已经在 2020 年底的 Android 中实现),所以如果 Android Studio 的新手会有相同的问题将能够快速找到一个简单的解决方案来使任何 ImageView 变圆。
首先,由于该解决方案是在 androidx 库中实现的,因此您应该确保在 gradle:
中声明此依赖项
dependencies {
//...
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
}
同步 gradle 后,您将能够使用名为“ImageFilterView”的组件。
ImageFilterView 是 ImageView 的子class,因此它继承了通用 ImageView 的所有内容,但添加了一些内容以操作图像。
在这些新事物中,有一个属性“roundPercent”,它允许您设置图像的角应该圆多少。
请记住,这是一个百分比值,因此它必须是一个介于 0.0 和 1.0 之间的浮点数。
将此属性设置为 1.0 将使图像完全呈圆形。
就这些,没有别的事可做,这足以得到一个圆形的ImageView:
<androidx.constraintlayout.utils.widget.ImageFilterView
app:roundPercent = 1.0 />
(请记住,您必须在 xml 文件的第一个布局的开头定义“app”命名空间才能使用它:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- ... -->
</layout>
所以,我看到这是一个常见问题,许多用户找到了很多解决这个问题的方法。 最常见的建议解决方案是创建一个自定义视图,其中设置了一种“圆角”属性,以便使图像的角变圆。 另一种建议的解决方案是导入一些第三方包来实现一个现成的自定义视图来实现圆形图像。
没有错,但是没有更简单的解决方案来获得圆形 ImageView 吗?
解决方案其实很简单,但还没有被建议那么多。 几个月前,我正在寻找一个简单的解决方案来获得一个圆形的 ImageView,但我所能找到的都是复杂的解决方案。 我正在写这个答案,因为这不是每个人都知道的(并且这个解决方案已经在 2020 年底的 Android 中实现),所以如果 Android Studio 的新手会有相同的问题将能够快速找到一个简单的解决方案来使任何 ImageView 变圆。
首先,由于该解决方案是在 androidx 库中实现的,因此您应该确保在 gradle:
中声明此依赖项dependencies {
//...
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
}
同步 gradle 后,您将能够使用名为“ImageFilterView”的组件。
ImageFilterView 是 ImageView 的子class,因此它继承了通用 ImageView 的所有内容,但添加了一些内容以操作图像。 在这些新事物中,有一个属性“roundPercent”,它允许您设置图像的角应该圆多少。 请记住,这是一个百分比值,因此它必须是一个介于 0.0 和 1.0 之间的浮点数。 将此属性设置为 1.0 将使图像完全呈圆形。
就这些,没有别的事可做,这足以得到一个圆形的ImageView:
<androidx.constraintlayout.utils.widget.ImageFilterView
app:roundPercent = 1.0 />
(请记住,您必须在 xml 文件的第一个布局的开头定义“app”命名空间才能使用它:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- ... -->
</layout>