我正在尝试使用在Android中使用Androidplots绘制的图形的屏幕截图。我如何使用Androidplot编程方式拍摄这些图形的屏幕截图?
您可以使用如下方法:
@SuppressLint("SimpleDateFormat")
protected final void shoot(final Context ctx, final View v, final String prefix)
{
// Get the bitmap from the view
v.setDrawingCacheEnabled(true);
final Bitmap bmp = v.getDrawingCache();
final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd@HHmmss");
final Calendar cal = Calendar.getInstance();
// Set file properties
fileJPG = prefix + "_" + sdf.format(cal.getTime());
/*
Create a path where we will place our picture in the user's public
pictures directory. Note that you should be careful about what you
place here, since the user often manages these files.
For pictures and other media owned by the application, consider
Context.getExternalMediaDir().
*/
final File path =
Environment.getExternalStoragePublicDirectory
(
//Environment.DIRECTORY_PICTURES
//Environment.DIRECTORY_DCIM
Environment.DIRECTORY_DCIM + "/SomePath/"
);
// Make sure the Pictures directory exists.
if(!path.exists())
{
path.mkdirs();
}
final File file = new File(path, fileJPG + ".jpg");
try
{
final FileOutputStream fos = new FileOutputStream(file);
final BufferedOutputStream bos = new BufferedOutputStream(fos, 8192);
bmp.compress(CompressFormat.JPEG, 85, bos);
bos.flush();
bos.close();
fileJPG = file.getPath();
}
catch (final IOException e)
{
e.printStackTrace();
}
}
请注意,即使您的应用程序是半透明的,也只能对其屏幕截图,而不是其背后的屏幕快照。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句