如何在android中使用androidplot拍摄图表的屏幕截图?

时间:2014-10-18 10:45:45

标签: android screenshot androidplot

我正在尝试使用android中的Androidplots绘制的图表截图。如何使用Androidplot programmatic来截取这些图表的截图?

1 个答案:

答案 0 :(得分:2)

您可以使用以下方法:

@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();
    }
}

请注意,您可以截取您的应用程序的屏幕截图,而不是它背后的内容,即使它是半透明的。