在android中拍摄SurfaceView的屏幕截图

Mos*_*ran 11 android

我正在使用以下方法来拍摄特定视图的屏幕截图,这是一个SurfaceView.

public void takeScreenShot(View surface_view){

    // create bitmap screen capture
    Bitmap bitmap;
    View v1 = surface_view;
    v1.setDrawingCacheEnabled(true);
    bitmap = Bitmap.createBitmap(v1.getDrawingCache());
    v1.setDrawingCacheEnabled(false);

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, bos);
    byte[] imageData = bos.toByteArray();

}
Run Code Online (Sandbox Code Playgroud)

问题是它给了我整个活动的屏幕图像.但我需要拍摄特定视图的屏幕截图.我试过其他方法,但那些给我一个黑屏作为屏幕截图,一些帖子说它需要root设备.任何人都可以帮助我.我需要这个解决方案.帮我....

Raj*_*N B 0

尝试使用这个

Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);  
v.setDrawingCacheEnabled(false);            
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
Run Code Online (Sandbox Code Playgroud)