Android studio bitmap设置圆角图片
时间: 2023-04-09 07:00:54 浏览: 188
你可以使用 Bitmap 和 Canvas 来实现设置圆角图片,具体步骤如下:
1. 首先,创建一个 Bitmap 对象,并将其设置为原始图片。
2. 创建一个 Canvas 对象,并将其与 Bitmap 对象关联。
3. 创建一个 Paint 对象,并设置其为抗锯齿。
4. 使用 Canvas 对象的 drawRoundRect() 方法来绘制一个圆角矩形。
5. 使用 Canvas 对象的 clipPath() 方法来将 Bitmap 对象裁剪为圆角矩形。
6. 使用 Canvas 对象的 drawBitmap() 方法来绘制裁剪后的 Bitmap 对象。
这样就可以实现设置圆角图片了。
相关问题
Android Studio 怎么设置圆角
Android Studio中设置圆角的方法有两种:使用xml文件设置和使用Java代码动态设置。
1. 使用xml文件设置圆角
在drawable文件夹下新建一个shape.xml文件,然后在文件中添加如下代码:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:radius="10dp">
<solid android:color="#ffffff" />
<corners android:radius="10dp" />
</shape>
```
其中,android:radius属性表示整个矩形的圆角半径,corners标签中的android:radius属性表示四个角的圆角半径。如果需要单独控制某一个角的显示样式,可单独设置四个角的值,例如:
```xml
<corners android:radius="10dp"
android:topLeftRadius="0dp"
android:topRightRadius="10dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="10dp" />
```
2. 使用Java代码动态设置圆角
```java
// 加载图片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
// 创建一个空的Bitmap
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
// 创建一个画布
Canvas canvas = new Canvas(output);
// 创建一个画笔
Paint paint = new Paint();
// 创建一个矩形
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
// 创建一个圆角矩形
RectF rectF = new RectF(rect);
// 设置圆角半径
float roundPx = 20;
// 绘制圆角矩形
paint.setAntiAlias(true);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
// 设置图像的叠加模式
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
// 绘制图像
canvas.drawBitmap(bitmap, rect, rect, paint);
// 显示图像
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageBitmap(output);
```
Android Studio 圆角图片
以下是两种在Android Studio中实现圆角图片的方法:
1.使用BitmapShader实现圆角图片
```java
// 加载图片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
// 创建一个空的Bitmap,大小与原图一致
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
// 创建一个画布
Canvas canvas = new Canvas(output);
// 创建一个画笔
Paint paint = new Paint();
// 创建一个矩形,大小与原图一致
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
// 创建一个圆角矩形
RectF rectF = new RectF(rect);
// 设置画笔的Shader为BitmapShader,即使用原图作为画笔的填充
paint.setShader(new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
// 绘制圆角矩形
canvas.drawRoundRect(rectF, 50, 50, paint);
// 将绘制好的圆角矩形设置为ImageView的背景
imageView.setBackground(new BitmapDrawable(getResources(), output));
```
2.使用Glide库实现圆角图片
```java
// 加载图片并设置圆角
Glide.with(this)
.load(R.drawable.image)
.transform(new RoundedCorners(50))
.into(imageView);
```
阅读全文