我正在实施一个按钮,可让您截取屏幕截图,但我想将其保存在Android内部存储设备而不是外部存储设备(SD卡)中。
我试过了:
private void takeScreenshot(View v) {
v = getWindow().getDecorView().getRootView();
v.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
saveToInternalStorage(bitmap)
}
我使用按钮的OnClick方法启动了此方法:
192.168.1.249 macduff
192.168.1.249 dc2-mysql-01.kattare.com
但这并没有奏效。相反,当我点击该按钮时,我的手机上会显示一条错误消息:"应用已停止"。
希望你能帮助我。
答案 0 :(得分:0)
/**
* This function captures any Android views to a bitmap shapshot
* and save it to a file path
* and optionally open it with android pciture viewer
*/
public void CaptureView(View view, String filePath, boolean bOpen) {
view.setDrawingCacheEnabled(true);
Bitmap b = view.getDrawingCache();
try {
b.compress(CompressFormat.JPEG, 95, new FileOutputStream(filePath));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (bOpen) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath), "image/*");
startActivity(intent);
}
}
用法:
File sdcard = Environment.getExternalStorageDirectory();
String path = sdcard + "/demo.jpg";
CaptureView(someViewInstace, path, false);
您可以使用 Context.getFilesDir()方法获取内部存储的路径:
String path = yourActivity.getFilesDir() + "/" + name);
答案 1 :(得分:0)
我认为您需要使用openFileOutput来获取FileOutputStream,请尝试按照文档https://developer.android.com/training/basics/data-storage/files.html
中的示例进行操作logcat中的错误是什么?