通过
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);可以让全部背景变模糊,但是现在是想弹出对话框,只让对话框覆盖的区域变模糊,怎么实现呢?
注意 改变透明度和用style的 backgroundDimEnabled属性都不是我要的效果,通过FLAG_BLUR_BEHIND得到的是全屏模糊也不行。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);可以让全部背景变模糊,但是现在是想弹出对话框,只让对话框覆盖的区域变模糊,怎么实现呢?
注意 改变透明度和用style的 backgroundDimEnabled属性都不是我要的效果,通过FLAG_BLUR_BEHIND得到的是全屏模糊也不行。
解决方案 »
- 求教安卓开的工具升级问题
- 有办法知道来电手机的手机型号吗?
- android UDP
- 布局中ListView不断响应onScroll事件问题
- 自己仔细看了下实在是找不出问题的所在.麻烦大虾们看看!
- 通过ContentProvider往数据中出入了三条数据,id为自增,删除掉第二条数据后,id成1,3,怎样让3变成2?
- 在新窗口切换城市后,怎么刷新主窗口的城市名称显示?
- sec_gps_inject_location: not implemented
- Android Tombstone/Crash 问题
- 这种效果怎么做的?
- 如何不让activity不会被关闭?也就是只onCreate一次?
- 求证运行eclipse的工程,让启动的模拟器加载自己编译出来的sdk的方法?
Bitmap bitmapWithReflection = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvasRef = new Canvas(bitmapWithReflection);
//画白底
canvasRef.drawARGB(0xff, 0xff, 0xff, 0xff);
// 创建一个渐变的蒙版
Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0,
originalImage.getHeight(), 0, bitmapWithReflection.getHeight()
+ reflectionGap, 0x80ffffff, 0x00ffffff, TileMode.CLAMP);
// Set the paint to use this shader (linear gradient)
paint.setShader(shader);
// Set the Transfer mode to be porter duff and destination in
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
// Draw a rectangle using the paint with our linear gradient
canvasRef.drawRect(0, height, width, bitmapWithReflection.getHeight()
+ reflectionGap, paint);
//调用ImageView中的setImageBitmap
this.setImageBitmap(bitmapWithReflection); 思路就是新建一个Bitmap,然后再里面画个白底,然后再上面加一个蒙板,我这里给出的效果是渐变效果,你可以改为半透明效果,然后再新建一个imageview,接下来setImageBitmap用这个Bitmap,然后再addView到你想要的地方应该就可以了。
可能这个方法不是很好,可参考。