请教一个关于android截图的问题,我在一个activity里面根据收到的指令动态添加了view,然后截图的时候图片里面没有动态添加的,要怎么处理

关于截图相关的都是照搬的
这个是截图,取到图片之后把界面里面的绿色都替换成白色


private Bitmap getBitmap(Activity activity, int x, int y, int width, int hight){
        View view = activity.getWindow().getDecorView();
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();
        PrintBitmap = view.getDrawingCache();
        PrintBitmap = Bitmap.createBitmap(PrintBitmap,x,y,width,hight);
        PrintBitmap = replaceBitmapColor(PrintBitmap, -16738486, -131587);
        String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
        try{
            FileOutputStream fout = new FileOutputStream("/storage/emulated/0/test.png");
            PrintBitmap.compress(Bitmap.CompressFormat.PNG,100,fout);
//            Bitmap rebitmap = replaceBitmapColor(PrintBitmap, android.R.color.white, android.R.color.holo_red_dark);
            Toast.makeText(jiboba.this,"截图成功",Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            Toast.makeText(jiboba.this,"文件保存失败",Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
        view.setDrawingCacheEnabled(false);
        return PrintBitmap;
    }

这些事动态添加view的

public void AddPointToTarget(byte[] cmd){
        bulletview[bulletNum] = new ImageView(getApplicationContext());
        bulletview[bulletNum].setImageResource(R.drawable.bullet);
        byte[] bytes = new byte[4];
        bytes[3] = cmd[14];
        bytes[2] = cmd[15];
        x_pos = byteArrayToInt(bytes);
        bytes[3] = cmd[16];
        bytes[2] = cmd[17];
        y_pos = byteArrayToInt(bytes);

        LayoutInflater.from(this).inflate(R.layout.activity_jiboba,null);    //加载View视图,这个就是我们要显示的内容
//        WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);    //获取WindowManage
        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();  //设置LayoutParams的属性
        layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;       //该Type描述的是形成的窗口的层级关系,下面会详细列出它的属性
        layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |       //该flags描述的是窗口的模式,是否可以触摸,可以聚焦等
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
        layoutParams.gravity = Gravity.LEFT|Gravity.BOTTOM;                                       //设置窗口的位置
        layoutParams.format = PixelFormat.TRANSLUCENT;                               //不设置这个弹出框的透明遮罩显示为黑色
        layoutParams.width = 30;//WindowManager.LayoutParams.MATCH_PARENT;                //窗口的宽
        layoutParams.height = 30;//WindowManager.LayoutParams.MATCH_PARENT;               //窗口的高
        layoutParams.x = (x_pos * 860 / 500) + 48 - 15;
        layoutParams.y = (y_pos * 855 / 500) + 195 + 15;
        layoutParams.token = ((View)findViewById(R.id.ShootPosPic)).getWindowToken();           //获取当前Activity中的View中的TOken,来依附Activity,因为设置了该值,纳闷写的这些代码不能出现在onCreate();否则会报错。
        windowManager.addView(bulletview[bulletNum],layoutParams);
        bulletNum++;
        ArrayNum++;

    }


通过button触发

img.setImageBitmap(getBitmap(jiboba.this,30,50,PicWidth/2-50,PicHight-150));

有没有大佬提供下思路的

没人啊

1、确定view能拿到图片;
2、确定修改颜色后能拿到图片;
3、确定权限;
4、确定代码是正确。

一步一步来肯定可以的。我能截图,但是没有改颜色的功能。

还没搞定,有没有大佬指点下的