Sme*_*eet 3 android screenshot
我正在使用以下代码以编程方式截取屏幕截图:
public static Bitmap takeScreenshot(View view)
{
try
{
// create bitmap screen capture
view.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
return bitmap;
}
catch (Throwable e)
{
CustomLogHandler.printError(e);
}
return null;
}
private static void copyFile(Bitmap bitmap)
{
File dstFile = getShareResultFile();
//Delete old file if exist.
if(dstFile.exists()) {
dstFile.delete();
}
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(dstFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 0, fos);
fos.flush();
}
catch (Exception e) {
CustomLogHandler.printError(e);
}
finally {
if (fos != null) {
try {
fos.close();
} catch (IOException ioe) {
CustomLogHandler.printError(ioe);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有几个问题,如:
我正在从根视图截取屏幕截图。
bitmap.compress(Bitmap.CompressFormat.JPEG, 0, fos);
Run Code Online (Sandbox Code Playgroud)
首先,您将其保存为 JPEG。JPEG 专为照片而设计,您的屏幕截图不是照片。
其次,您使用质量因子 0 保存它。JPEG 使用有损压缩算法,质量因子 0 表示“请随意使该图像非常糟糕,但尽可能压缩它”。
我建议切换到:
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
Run Code Online (Sandbox Code Playgroud)
PNG 是一种更好的图像格式,可用于截取您的问题中显示的内容。我不认为 PNG 使用质量因子值;我输入 100 只是为了表明您想要最好的质量。
| 归档时间: |
|
| 查看次数: |
4005 次 |
| 最近记录: |