思路:

1.使用findViewByid获得需要设置毛玻璃的控件。
2.调用 setBlurBackground(Bitmap bmp)方法(下面会给出),参数为Bitmap类型,给控件设置毛玻璃背景!
3.已完成,
方法:
/**
* 设置毛玻璃背景
* 背景图片 Bitmap
*/
private void setBlurBackground(Bitmap bmp)
{
final Bitmap blurBmp = BlurUtil.fastblur(ParentCircleInfoActivity.this, bmp, 10);//0-25,表示模糊值
final Drawable drawable = ImageUtil.getDrawable(this,blurBmp);//将bitmap类型图片 转为 Drawable类型
mRLHead.post(new Runnable() //调用UI线程
{
@Override
public void run()
{
mRLHead.setBackgroundDrawable(drawable);
}
});
}
bitmap 转 drawable:
/**
* bitmap -> drawable
* @param context
* @param bm
* @return
*/
public static Drawable getDrawable(Context context, Bitmap bm){
BitmapDrawable bd= new BitmapDrawable(context.getResources(),bm);
return bd;
}
使用到的工具类:
public class BlurUtil
{
@SuppressLint("NewApi")
public static Bitmap fastblur(Context context, Bitmap sentBitmap, int radius)
{
if (VERSION.SDK_INT > 16)
{
Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
final RenderScript rs = RenderScript.create(context);
final Allocation input = Allocation.createFromBitmap(rs,sentBitmap, Allocation.MipmapControl.MIPMAP_NONE,Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs,input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(radius);/* e.g. 3.f */
script.setInput(input);
script.forEach(output);
output.copyTo(bitmap);
return bitmap;
}
Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
if (radius < 1)
{
return (null);
}
int w = bitmap.getWidth();
int h = bitmap.getHeight();
int[] pix = new int[w * h];
Log.e("pix", w + " " + h + " " + pix.length);
bitmap.getPixels(pix, 0, w, 0, 0, w, h);
int wm = w - 1;
int hm = h - 1;
int wh = w * h;
int div = radius + radius + 1;
int r[] = new int[wh];
int g[] = new int[wh];
int b[] = new int[wh];
int rsum, gsum, bsum, x, y, i, p, yp, yi, yw;
int vmin[] = new int[Math.max(w, h)];
int divsum = (div + 1) >> 1;
divsum *= divsum;
int dv[] = new int[256 * divsum];
for (i = 0; i < 256 * divsum; i++)
{
dv[i] = (i / divsum);
}
yw = yi = 0;
int[][] stack = new int[div][3];
int stackpointer;
int stackstart;
int[] sir;
int rbs;
int r1 = radius + 1;
int routsum, goutsum, boutsum;
int rinsum, ginsum, binsum;
for (y = 0; y < h; y++)
{
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
for (i = -radius; i <= radius; i++)
{
p = pix[yi + Math.min(wm, Math.max(i, 0))];
sir = stack[i + radius];
sir[0] = (p & 0xff0000) >> 16;
sir[1] = (p & 0x00ff00) >> 8;
sir[2] = (p & 0x0000ff);
rbs = r1 - Math.abs(i);
rsum += sir[0] * rbs;
gsum += sir[1] * rbs;
bsum += sir[2] * rbs;
if (i > 0)
{
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
}
else
{
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
}
}
stackpointer = radius;
for (x = 0; x < w; x++)
{
r[yi] = dv[rsum];
g[yi] = dv[gsum];
b[yi] = dv[bsum];
rsum -= routsum;
gsum -= goutsum;
bsum -= boutsum;
stackstart = stackpointer - radius + div;
sir = stack[stackstart % div];
routsum -= sir[0];
goutsum -= sir[1];
boutsum -= sir[2];
if (y == 0)
{
vmin[x] = Math.min(x + radius + 1, wm);
}
p = pix[yw + vmin[x]];
sir[0] = (p & 0xff0000) >> 16;
sir[1] = (p & 0x00ff00) >> 8;
sir[2] = (p & 0x0000ff);
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
rsum += rinsum;
gsum += ginsum;
bsum += binsum;
stackpointer = (stackpointer + 1) % div;
sir = stack[(stackpointer) % div];
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
rinsum -= sir[0];
ginsum -= sir[1];
binsum -= sir[2];
yi++;
}
yw += w;
}
for (x = 0; x < w; x++)
{
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
yp = -radius * w;
for (i = -radius; i <= radius; i++)
{
yi = Math.max(0, yp) + x;
sir = stack[i + radius];
sir[0] = r[yi];
sir[1] = g[yi];
sir[2] = b[yi];
rbs = r1 - Math.abs(i);
rsum += r[yi] * rbs;
gsum += g[yi] * rbs;
bsum += b[yi] * rbs;
if (i > 0)
{
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
}
else
{
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
}
if (i < hm)
{
yp += w;
}
}
yi = x;
stackpointer = radius;
for (y = 0; y < h; y++)
{
pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum];
rsum -= routsum;
gsum -= goutsum;
bsum -= boutsum;
stackstart = stackpointer - radius + div;
sir = stack[stackstart % div];
routsum -= sir[0];
goutsum -= sir[1];
boutsum -= sir[2];
if (x == 0)
{
vmin[y] = Math.min(y + r1, hm) * w;
}
p = x + vmin[y];
sir[0] = r[p];
sir[1] = g[p];
sir[2] = b[p];
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
rsum += rinsum;
gsum += ginsum;
bsum += binsum;
stackpointer = (stackpointer + 1) % div;
sir = stack[stackpointer];
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
rinsum -= sir[0];
ginsum -= sir[1];
binsum -= sir[2];
yi += w;
}
}
bitmap.setPixels(pix, 0, w, 0, 0, w, h);
return (bitmap);
}
}
总结
以上所述是小编给大家介绍的Android毛玻璃背景效果简单实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# 毛玻璃效果
# Android实现图片毛玻璃背景效果
# Android实现毛玻璃效果的对话框
# Android利用RenderScript实现毛玻璃模糊效果示例
# Android 实现图片模糊、高斯模糊、毛玻璃效果的三种方法
# Android学习教程之图片毛玻璃效果(4)
# Android 高仿微信语音聊天页面高斯模糊(毛玻璃效果)
# Android模糊处理简单实现毛玻璃效果
# Android中毛玻璃效果的两种实现代码
# 小编
# 在此
# 给大家
# 所述
# 给我留言
# 感谢大家
# 疑问请
# 有任何
# context
# param
# gt
# bm
相关文章:
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
建站主机CVM配置优化、SEO策略与性能提升指南
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
开源网站制作软件,开源网站什么意思?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何用PHP快速搭建高效网站?分步指南
如何高效完成自助建站业务培训?
红河网站制作公司,红河事业单位身份证如何上传?
如何通过可视化优化提升建站效果?
如何在阿里云购买域名并搭建网站?
SQL查询语句优化的实用方法总结
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何快速搭建高效简练网站?
如何访问已购建站主机并解决登录问题?
宝塔Windows建站如何避免显示默认IIS页面?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
如何用PHP快速搭建CMS系统?
网站制作壁纸教程视频,电脑壁纸网站?
如何续费美橙建站之星域名及服务?
如何确保西部建站助手FTP传输的安全性?
建站之星如何通过成品分离优化网站效率?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
无锡营销型网站制作公司,无锡网选车牌流程?
如何选择高效可靠的多用户建站源码资源?
如何通过虚拟主机快速搭建个人网站?
ppt制作免费网站有哪些,ppt模板免费下载网站?
在线制作视频网站免费,都有哪些好的动漫网站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
建站主机核心功能解析:服务器选择与网站搭建流程指南
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
公司网站设计制作厂家,怎么创建自己的一个网站?
如何通过虚拟机搭建网站?详细步骤解析
湖北网站制作公司有哪些,湖北清能集团官网?
教学网站制作软件,学习*后期制作的网站有哪些?
如何登录建站主机?访问步骤全解析
如何快速搭建支持数据库操作的智能建站平台?
建站之星伪静态规则如何设置?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
家庭服务器如何搭建个人网站?
如何在万网自助建站平台快速创建网站?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何破解联通资金短缺导致的基站建设难题?
如何通过二级域名建站提升品牌影响力?
网站制作软件有哪些,制图软件有哪些?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
手机网站制作与建设方案,手机网站如何建设?
*请认真填写需求信息,我们会在24小时内与您取得联系。