谢谢!
解决方法 你可以使用我的概念,如果你想要我在 AlertDialog with Blur background in possition center使用我的做法
>拍摄屏幕
>程式上动画模糊/模糊屏幕截图
>使用对话框获取currant窗口没有任何内容
>附加屏幕截图有效
>显示我想显示的真实视图
在这里,我有一个类将背景的图像作为位图
public class AppUtils { public static Bitmap takeScreenShot(Activity activity) { VIEw vIEw = activity.getwindow().getDecorVIEw(); vIEw.setDrawingCacheEnabled(true); vIEw.buildDrawingCache(); Bitmap b1 = vIEw.getDrawingCache(); Rect frame = new Rect(); activity.getwindow().getDecorVIEw().getwindowVisibledisplayFrame(frame); int statusbarHeight = frame.top; display display = activity.getwindowManager().getDefaultdisplay(); Point size = new Point(); display.getSize(size); int wIDth = size.x; int height = size.y; Bitmap b = Bitmap.createBitmap(b1,statusbarHeight,wIDth,height - statusbarHeight); vIEw.destroyDrawingCache(); return b; }}
恭喜现在你有一个与你的背景相同的暗/暗的图像
那么你的要求就是像我这样不那么模糊,所以你可以把这个位图传给下面的方法,
public static Bitmap changeBitmapContrastBrightness(Bitmap bmp,float contrast,float brightness) { colorMatrix cm = new colorMatrix(new float[] { contrast,brightness,contrast,1,0 }); Bitmap ret = Bitmap.createBitmap(bmp.getWIDth(),bmp.getHeight(),bmp.getConfig()); Canvas canvas = new Canvas(ret); Paint paint = new Paint(); paint.setcolorFilter(new colorMatrixcolorFilter(cm)); canvas.drawBitmap(bmp,paint); return ret; }
现在使用一个假的对话框/对话框,只有一个背景/内容才能获得窗口(检查我的问题实现,你可以理解)
Window window = fakeDialogUsetoGetwindowForBlurEffect.getwindow();window.setBackgroundDrawable(draw); // draw is bitmap that you created
在此之后,您可以显示您的真实视图.在我的情况下,我显示一个警报,您可以显示任何您的视图,并记住删除/去那个警报,当你的真实视图从屏幕出来!
快出来:(可以根据需要定制背景,不光暗)
总结以上是内存溢出为你收集整理的android – 当显示Bottomsheet时,如何减轻背景,而不使用Dialog?全部内容,希望文章能够帮你解决android – 当显示Bottomsheet时,如何减轻背景,而不使用Dialog?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)