一、实现圆形图片
Android原生没有特别好的实现圆形图片的方法,直接用Glide框架
1.导入依赖
【两种方法,实际效果都一样,可以看一下自己习惯哪种】
1.1 在Project Structure中
↓选第一个
在左侧选择了<ALL Modules>时,可能会让你选择你需要将依赖导入哪一个module,如果只有一个app可能不会弹出选择,然后进行搜索,选择一个你需要的
这里我们要用的是implementation 'com.github.bumptech.glide:glide:',
输入关键字以后search【可能需要等待一段时间】
选择你需要的依赖,确定好GROUP ID等
如果找博客的时候看到有人吐槽最新的版本不好用,这里也可以先点OK然后再去build.gradle文件里改版本
继续OK
然后就会开始下载,保证网络良好就可以了
1.2 直接在build.gradle中添加依赖
2. 简单使用
2.1【圆形图片】
ImageView loginPhoto =view.findViewById(R.id.photo);
//老生常谈了,fid应该都熟悉,这个例子是在Fragment里跑的所以需要通过解析器获得的view来获取对应的ImageView
Glide.with(requireActivity())//如果你在Activity里面写,就用XXXActivity.this
.load((BitmapDrawable)loginPhoto.getDrawable())//lode里面的参数是图片资源
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(loginPhoto);
2.2【圆角图片】
// context表示当前所在活动,例如MainActivity.this
// url表示图片资源网址或本地资源R.drawable.icon等
// apply应用圆形变换方法,10表示圆角半径
// image表示布局中的ImageView控件
//网上的代码我懒得跑了应该没问题
context = MainActivity.this
url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F4k%2Fs%2F02%2F2109242332225H9-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652004122&t=70e3b52d14b9bf1bb2d795b7e1d32bf5"
image = (ImageView) findViewById(R.id.image);
Glide.with(context)
.load(url)
.apply(RequestOptions.bitmapTransform(new RoundedCorners(10)))
.into(image);
二、圆角背景(自定义shape)
1.新建 Drawable Resource File
2.修改Root element为shape
3.设置根标签的shape属性
因为需要实现的是矩形的圆角,所以shape="rectangle"
补充shape的其他取值:
-
rectangle
:表示矩形。这种形状的边框是一个矩形,没有圆角 -
line
:表示线条。这种形状的边框是一条直线,没有圆角 -
oval
:表示椭圆。这种形状的边框是一个椭圆,没有圆角 -
ring
:表示环形。这种形状的边框是一个环形,没有圆角
可以根据需要选择适当的形状类型,并自定义其属性,以实现各种自定义的效果,包括边框宽度和颜色、填充颜色、阴影等
4.添加corners xml标签
<corners
android:radius="50dp"
/>
<!--根据需求设置圆角角度的大小-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="50dp"
/>
<!--solid color属性 设置shape的填充颜色-->
<solid
android:color="#9B83FF"
/>
</shape>
5.使用其他属性,例如渐变
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="50dp"
/>
<solid
android:color="@color/white"
/>
<gradient
android:gradientRadius="10dp"
android:startColor="@color/white"
android:endColor="@color/black"
android:angle="10"
android:centerX="0"
android:centerY="0"
android:type="linear"
/>
<size
android:height="500dp"
android:width="300dp"/>
</shape>
在Android开发中,gradient标签用于定义一个渐变色。渐变色可以用来给元素添加复杂的颜色效果,例如背景、边框、填充等。以下是gradient标签中的各个属性及其含义: android:gradientRadius:渐变色的半径。该属性指定了渐变色的半径,可以用来控制渐变色的形状和大小。
android:startColor:渐变色的起始颜色。该属性指定了渐变色的起始颜色,可以用来控制渐变色的颜色和方向。
android:endColor:渐变色的结束颜色。该属性指定了渐变色的结束颜色,可以用来控制渐变色的颜色和方向。
android:angle:渐变色的角度。该属性指定了渐变色的角度,可以用来控制渐变色的方向。
android:centerX:渐变色的中心X坐标。该属性指定了渐变色的中心X坐标,可以用来控制渐变色的位置。
android:centerY:渐变色的中心Y坐标。该属性指定了渐变色的中心Y坐标,可以用来控制渐变色的位置。
android:type:渐变色的类型。该属性指定了渐变色的类型,可以用来控制渐变色的形状和方向。
android:centerColor:渐变色的中心颜色。该属性指定了渐变色的中心颜色,可以用来控制渐变色的颜色和方向。