안녕하세요. RTSP를 활용한 스트리밍 영상을 서피스뷰로 지정하여
영상을 스트리밍 하는데요. 이 화면을 그냥 캡쳐를 하면 view.setDrawingCacheEnabled 같은 경우엔 검은 화면으로 나오고 먹히질 않습니다. 밑의 코드 부분에 drawBitmap()부분이 안먹히는데 뭐가 문제일까요?
ImageButton btnsave = (ImageButton)findViewById(R.id.button_save);
btnsave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vv) {
View captureView = findViewById(R.id.button_save);
Bitmap bm = Bitmap.createBitmap(captureView.drawBitmap());
if (bm != null) {
try {
String path = Environment.getExternalStorageDirectory().toString();
OutputStream fOut = null;
File file = new File(path + "/", "screenshot.jpg");
fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
public void Bitmap ViewToBitmap(View view){
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
if (view instanceof SurfaceView) {
SurfaceView surfaceView = (SurfaceView) view;
surfaceView.setZOrderOnTop(true);
surfaceView.draw(canvas);
surfaceView.setZOrderOnTop(false);
return bitmap;
} else { //For ViewGroup & View
view.draw(canvas);
return bitmap;
}