我想在我的Android应用程序中截屏。由于我不熟悉Java,因此我使用了在网上找到的一些代码。以下是目前为止我所写的代码。
当我按下调用我的方法的按钮时,日志显示如下:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/newimg.jpg: open failed: EACCES (Permission denied)
这是我在清单文件中拥有的权限:
public void screenshot(View view){
View v = view.getRootView();
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
String extr = Environment.getExternalStorageDirectory().toString();
File myPath = new File(extr, getString(R.string.new_image)+".jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(myPath);
b.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
MediaStore.Images.Media.insertImage( getContentResolver(), b,
"Screen", "screen");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我按下调用我的方法的按钮时,日志显示如下:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/newimg.jpg: open failed: EACCES (Permission denied)
这是我在清单文件中拥有的权限:
<uses-permission
android:required="true"
android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.INTERNET"/>
<uses-permission
android:required="true"
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
android:required="true"
android:name="android.permission.READ_EXTERNAL_STORAGE"/>
如果有人能够帮我进一步,我也很想知道如何截取屏幕的某个部分,比如我的VideoView小部件,而不是整个屏幕(或者可能在将截图存储到相册/SD卡之前裁剪截图的方法)。
非常感谢任何建议。