Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:点击一个按钮就能模糊屏幕_Android - Fatal编程技术网

Android 安卓:点击一个按钮就能模糊屏幕

Android 安卓:点击一个按钮就能模糊屏幕,android,Android,我一直在努力寻找解决这个问题的办法。 我有一个有许多按钮和布局的活动,还有一组按钮,比如说btnA、btnB、btnC。现在单击btnA,我想散焦或模糊整个屏幕,除了那组按钮,btnA,btnB,btnC。可能吗 我试图更改所有布局的alpha值,但它不起作用。 然后添加此类以模糊所需的图像 public class BlurBuilder { private static final float BITMAP_SCALE = 0.4f; private static final float B

我一直在努力寻找解决这个问题的办法。 我有一个有许多按钮和布局的活动,还有一组按钮,比如说btnA、btnB、btnC。现在单击btnA,我想散焦或模糊整个屏幕,除了那组按钮,btnA,btnB,btnC。可能吗

我试图更改所有布局的alpha值,但它不起作用。

然后添加此类以模糊所需的图像

public class BlurBuilder {
private static final float BITMAP_SCALE = 0.4f;
private static final float BLUR_RADIUS = 7.5f;

public static Bitmap blur(Context context, Bitmap image) {
    int width = Math.round(image.getWidth() * BITMAP_SCALE);
    int height = Math.round(image.getHeight() * BITMAP_SCALE);

    Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);
    Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

    RenderScript rs = RenderScript.create(context);
    ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
    Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
    theIntrinsic.setRadius(BLUR_RADIUS);
    theIntrinsic.setInput(tmpIn);
    theIntrinsic.forEach(tmpOut);
    tmpOut.copyTo(outputBitmap);

    return outputBitmap;
}}
然后将此代码添加到btnA的clickListner并将图像传递给它

   Bitmap blurredBitmap = BlurBuilder.blur( getActivity(), originalBitmap );
   view.setBackgroundDrawable( new BitmapDrawable( getResources(), blurredBitmap ) );

你试过什么吗。请发一些代码。