gpt4 book ai didi

android - 在安卓中分享截图

转载 作者:行者123 更新时间:2023-11-30 01:14:10 25 4
gpt4 key购买 nike

我的手机里没有 SD 卡,也希望使用我的应用的人可能有也可能没有。现在,当我尝试分享我的屏幕截图时,它在少数手机上有效,但在少数手机上无效。在所有这些手机中,都没有 SD 卡。另外我想确保屏幕截图不应该保存在任何地方,这样它就不会在图库中可见。我尝试了以下方法:

  • 获取外部存储状态()
  • 获取数据目录()
  • 获取文件目录()
  • getDir()
  • getCacheDir()

但我仍然无法找到正确的方法。这是我正在处理的当前代码:

view.setDrawingCacheEnabled(true);    
view.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(view.getHeight(), View.MeasureSpec.EXACTLY));
view.layout( view.getLeft(), view.getTop(), view.getLeft() + view.getMeasuredWidth(), view.getTop() + view.getMeasuredHeight());
bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
view.destroyDrawingCache();
view.invalidate();
view.refreshDrawableState();
File path = new File(getApplicationContext().getDir("Default", Context.MODE_ENABLE_WRITE_AHEAD_LOGGING),"myapp");
File directory = new File(path.getAbsolutePath());
directory.mkdirs();
String filename = "myapp" + new Date() + ".png";
File yourFile = new File(directory, filename);
try
{
FileOutputStream out = new FileOutputStream(yourFile, true);
bitmap.compress(Bitmap.CompressFormat.PNG, 90,out);
out.flush();
out.close();
send(yourFile);
}catch (IOException e)
{
e.printStackTrace();
}

现在我的重点是在没有 SD 卡的手机上分享屏幕截图,并且它不应该保存在任何地方,这样屏幕截图就不会在我继续分享时一直被丢弃。怎么做?

编辑:现在我开始研究 getDir() 方法,以便文件将保存在应用程序数据中,正如我的 friend Ashish Vora 所指出的那样。我发现文件已保存在内部,但不会取回以供共享。我得到的只是一个空白屏幕。

最佳答案

最好的方法是使用 getDir() 保存它。因此它将在您的应用程序数据中并且在图库中不可见。您也可以使用您的应用程序共享它。

所以保存为:

File path = new File( getDir(YOUR_DEFAULT_DIRECTORY_NAME, Context.MODE_ENABLE_WRITE_AHEAD_LOGGING));
File directory = new File(path.getAbsolutePath()+ "/my app");

否则你可以使用:

File directory = new File(getDir("my app", Context.MODE_ENABLE_WRITE_AHEAD_LOGGING));

关于android - 在安卓中分享截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38115019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com