第一种是生成圆角背景:
Button mView = (Button)findViewById(R.id.mView);
Bitmap myCoolBitmap = ((BitmapDrawable) getResources().getDrawable(
R.drawable.icon)).getBitmap();
int w = myCoolBitmap.getWidth(), h = myCoolBitmap.getHeight();
Bitmap rounder = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(rounder);
Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
xferPaint.setColor(Color.RED);
canvas.drawRoundRect(new RectF(0, 0, w, h), 20.0f, 20.0f, xferPaint);
xferPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(myCoolBitmap, 0, 0, null);
canvas.drawBitmap(rounder, 0, 0, xferPaint);
Drawable drawable = new BitmapDrawable(rounder);
mView.setBackgroundDrawable(drawable);
第二种是真的圆角的位图:
public Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
// 创建一个指定宽度和高度的空位图对象
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
// 用该位图创建画布
Canvas canvas = new Canvas(output);
// 画笔对象
final Paint paint = new Paint();
// 画笔的颜色
final int color = 0xff424242;
// 矩形区域对象
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
// 未知
final RectF rectF = new RectF(rect);
// 拐角的半径
final float roundPx = 30;
// 消除锯齿
paint.setAntiAlias(true);
// 画布背景色
canvas.drawARGB(0, 0, 0, 0);
// 设置画笔颜色
paint.setColor(color);
// 绘制圆角矩形
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
// 未知
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
// 把该图片绘制在该圆角矩形区域中
canvas.drawBitmap(bitmap, rect, rect, paint);
// 最终在画布上呈现的就是该圆角矩形图片,然后我们返回该Bitmap对象
return output;
}
分享到:
相关推荐
本篇文章将深入探讨如何在Android中对Bitmap图片进行处理,使其能够以任意角度显示为圆角,以及涉及到的相关技术。 首先,我们要理解Android中的ImageView组件,它是用来显示图像的视图,可以显示Bitmap或者从资源...
在Android开发中,为了提升用户体验,我们经常需要对图片进行特殊处理,比如将矩形的Bitmap转换为圆角效果。这种需求在用户头像显示、卡片设计等场景中尤为常见。"把bitmap处理成圆角"是Android UI设计中一个重要的...
在Android开发中,Bitmap是用于处理图像的基本类,它可以被用来加载、绘制和操作图片。在上述代码中,我们看到了如何实现Bitmap的两种特殊效果:圆角和倒影。下面将详细解释这两种效果的实现原理。 1. **圆角Bitmap...
在这种情况下,我们可以利用Android的Canvas API来实现生成带圆角的Bitmap图片。以下将详细讲解如何通过Java代码实现这一功能。 首先,我们需要了解几个关键的概念和类: 1. **Bitmap**:在Android中,Bitmap是...
在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...
在Android开发中,为图片或背景添加圆角效果是一种常见的需求,这可以提升应用的界面美观性和用户体验。本文将深入探讨如何实现图片和背景的半圆角及全圆角效果,并提供源码分析。 首先,要理解Android中实现圆角...
- 获取圆角Bitmap:`getRoundedCornerBitmap`方法利用Canvas和Paint创建圆角效果。 - 生成带倒影的Bitmap:`createReflectionImageWithOrigin`方法通过复制和翻转Bitmap并添加渐变效果实现。 以上就是Android中...
在Android开发中,图片圆角化是一个常见的需求,主要用于提高应用界面的美观度和用户体验。在本主题中,我们将深入探讨如何实现Android图片的圆角化处理,主要涉及`ImageView`的自定义以及相关的编程技术。 首先,...
1. 为防止`SurfaceView`的内容被圆角裁剪,可以将内容绘制到一个`Bitmap`,然后在`ViewGroup`的`onDraw()`中绘制该`Bitmap`,同时对`Canvas`进行裁剪。 2. 要确保`SurfaceView`的大小与`ViewGroup`一致,以保持圆角...
本篇文章将深入探讨如何在Android中实现`ImageView`的圆角效果以及图片剪切功能。 ### 一、Android ImageView实现圆角图片 在Android中,让`ImageView`显示圆角图片主要有以下几种方法: 1. **自定义`ImageView`*...
也可以直接使用BitmapDrawable并设置Bitmap为带有圆角的图像。 2. **设置SpannableString**:创建一个SpannableString对象,将需要设置背景的文本插入。然后使用`setSpan`方法,传入自定义的BackgroundSpan(实现...
在Android开发中,有时我们需要将一个矩形的图片转换为圆角矩形显示,以提升UI界面的美观度。这通常涉及到自定义View或者ImageView的使用,以及Canvas的绘图技术。下面我们将详细探讨如何实现这个功能。 首先,我们...
在Android开发中,为ImageView设置圆角效果是一个常见的需求,特别是在用户界面设计中,例如用于显示用户头像。实现这一效果的方式多种多样,既有简单的XML属性设置,也有自定义View的解决方案。以下将详细介绍如何...
本篇文章将深入探讨如何基于Android平台创建一个名为RCImageView的自定义圆角ImageView,同时具备边框效果。这个自定义组件可以为用户提供更灵活的图像展示方式,增强应用的视觉体验。 首先,我们要了解Android中的...
在Android应用开发中,UI设计往往需要实现各种各样的图形效果,其中圆角矩形和圆形图片是最常见的需求之一。`RoundRectLayout`是专门为解决此类问题而设计的一个自定义布局,它允许开发者轻松地创建具有任意圆角和...
在Android开发中,为图像添加圆角或将其转化为圆形是常见的需求,这通常涉及到自定义View的使用。本文将深入探讨如何在Android中完美实现图片的圆角和圆形效果,并修复可能遇到的bug。 首先,我们需要创建一个...
在Android开发中,为了提升应用的用户体验,我们经常需要对图片进行处理,使其显示为圆角矩形或甚至是圆形。这种需求在用户头像、按钮背景等设计元素中尤为常见。本节将深入探讨如何在Android Studio中实现这一功能...
在Android开发中,为应用程序创建美观的用户界面是至关重要的,而圆角图标和不规则圆角边框是实现这一目标的常见设计元素。本文将深入探讨如何在Android平台上实现这两种效果,帮助开发者提升应用的视觉体验。 首先...
本文将深入探讨如何在Android Studio中实现对话框的圆角以及毛玻璃模糊效果,这两种特性常常被用于提升界面的美观度和交互性。 首先,让我们关注对话框的圆角效果。在Android中,对话框通常由`AlertDialog`或自定义...