Java 无法拍摄可见的+;android中布局的不可见部分
我想保存整个可滚动布局的屏幕截图,但它只捕获屏幕上可见的部分 这是我的全部布局 以下是截图: 以下是屏幕截图的代码:Java 无法拍摄可见的+;android中布局的不可见部分,java,android,screenshot,android-bitmap,bitmapimage,Java,Android,Screenshot,Android Bitmap,Bitmapimage,我想保存整个可滚动布局的屏幕截图,但它只捕获屏幕上可见的部分 这是我的全部布局 以下是截图: 以下是屏幕截图的代码: private void takeScreenshot() { View v1 = getWindow().getDecorView().getRootView();; v1.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
private void takeScreenshot() {
View v1 = getWindow().getDecorView().getRootView();;
v1.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
saveScreenshot(bitmap,"filename");
}
public void saveScreenshot(Bitmap bitmap,String name) {
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + name + ".jpg";
File imageFile = new File(mPath);
Msg.log(mPath);
try {
FileOutputStream outputStream = new FileOutputStream(imageFile);
int quality = 100;
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
使用以下代码拍摄完整的滚动视图屏幕快照
Bitmap bitmap = getBitmapFromView(scrollview, scrollview.getChildAt(0).getHeight(), scrollview.getChildAt(0).getWidth());
private Bitmap getBitmapFromView(View view, int height, int width) {
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Drawable bgDrawable = view.getBackground();
if (bgDrawable != null)
bgDrawable.draw(canvas);
else
canvas.drawColor(Color.WHITE);
view.draw(canvas);
return bitmap;
}
替换代码saveScreenshot(位图,“文件名”)代码>与上述代码的输出<代码>返回位图代码>
示例:
使用以下代码拍摄完整滚动视图屏幕快照
Bitmap bitmap = getBitmapFromView(scrollview, scrollview.getChildAt(0).getHeight(), scrollview.getChildAt(0).getWidth());
private Bitmap getBitmapFromView(View view, int height, int width) {
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Drawable bgDrawable = view.getBackground();
if (bgDrawable != null)
bgDrawable.draw(canvas);
else
canvas.drawColor(Color.WHITE);
view.draw(canvas);
return bitmap;
}
替换代码saveScreenshot(位图,“文件名”)代码>与上述代码的输出<代码>返回位图代码>
示例: