如何分享imageview的图片?

2023-12-15

我有 ImageView,我想分享它的图像。

以下是我的代码,

btshare.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

                 View content = findViewById(R.id.full_image_view);
                 content.setDrawingCacheEnabled(true);
                     Bitmap bitmap = content.getDrawingCache();
                     File root = Environment.getExternalStorageDirectory();
                     File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg");
                     try 
                     {
                         root.createNewFile();
                         FileOutputStream ostream = new FileOutputStream(root);
                         bitmap.compress(CompressFormat.JPEG, 100, ostream);
                         ostream.close();
                     } 
                     catch (Exception e) 
                     {
                         e.printStackTrace();
                     }


                 Intent shareIntent = new Intent(Intent.ACTION_SEND);
                 Uri phototUri = Uri.parse("/DCIM/Camera/image.jpg");
                 shareIntent.setData(phototUri);
                 shareIntent.setType("image/*");
                 shareIntent.putExtra(Intent.EXTRA_STREAM, phototUri);
                 startActivity(Intent.createChooser(shareIntent, "Share Via"));

             }  



    });

当我按下按钮时我收到这些错误?

01-13 06:00:19.282: W/System.err(6199): java.io.FileNotFoundException: /storage/emulated/0: open failed: EISDIR (Is a directory)
01-13 06:00:19.286: W/System.err(6199):     at libcore.io.IoBridge.open(IoBridge.java:409)
01-13 06:00:19.286: W/System.err(6199):     at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
01-13 06:00:19.294: W/System.err(6199):     at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
01-13 06:00:19.294: W/System.err(6199):     at com.safshari.mandegar.FullImageActivity$3.onClick(FullImageActivity.java:116)
01-13 06:00:19.294: W/System.err(6199):     at android.view.View.performClick(View.java:4240)
01-13 06:00:19.294: W/System.err(6199):     at android.view.View$PerformClick.run(View.java:17721)
01-13 06:00:19.298: W/System.err(6199):     at android.os.Handler.handleCallback(Handler.java:730)
01-13 06:00:19.298: W/System.err(6199):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-13 06:00:19.298: W/System.err(6199):     at android.os.Looper.loop(Looper.java:137)
01-13 06:00:19.302: W/System.err(6199):     at android.app.ActivityThread.main(ActivityThread.java:5103)
01-13 06:00:19.302: W/System.err(6199):     at java.lang.reflect.Method.invokeNative(Native Method)
01-13 06:00:19.302: W/System.err(6199):     at java.lang.reflect.Method.invoke(Method.java:525)
01-13 06:00:19.302: W/System.err(6199):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-13 06:00:19.306: W/System.err(6199):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-13 06:00:19.306: W/System.err(6199):     at dalvik.system.NativeStart.main(Native Method)
01-13 06:00:19.310: W/System.err(6199): Caused by: libcore.io.ErrnoException: open failed: EISDIR (Is a directory)
01-13 06:00:19.310: W/System.err(6199):     at libcore.io.Posix.open(Native Method)
01-13 06:00:19.310: W/System.err(6199):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
01-13 06:00:19.310: W/System.err(6199):     at libcore.io.IoBridge.open(IoBridge.java:393)
01-13 06:00:19.314: W/System.err(6199):     ... 14 more
01-13 06:00:19.618: E/Genymotion(489): Could not open '/sys/class/power_supply/genymotion_fake_path/present'

我应该做什么以及我的程序需要什么权限?我已经声明了以下权限,

<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

最终代码,以便任何人都可以使用 imageview 保存和共享图像:

View content = findViewById(R.id.full_image_view);
                 content.setDrawingCacheEnabled(true);

                     Bitmap bitmap = content.getDrawingCache();
                     File root = Environment.getExternalStorageDirectory();
                     File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg");
                     try {
                         cachePath.createNewFile();
                         FileOutputStream ostream = new FileOutputStream(cachePath);
                         bitmap.compress(CompressFormat.JPEG, 100, ostream);
                         ostream.close();
                     } catch (Exception e) {
                         e.printStackTrace();
                     }


                     Intent share = new Intent(Intent.ACTION_SEND);
                     share.setType("image/*");
                     share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(cachePath));
                     startActivity(Intent.createChooser(share,"Share via"));

             }  

快乐编码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何分享imageview的图片? 的相关文章

随机推荐

  • 终止于 D3 中节点边界的链接和箭头

    我的问题是如何创建网络可视化方案 使边缘和 或箭头终止于节点的边界 我正在使用 D3 js 绘制一个有向图弧形链节基本模型添加了 标记 箭头 如此处所述其他问题 我的可视化中的节点根据其属性改变其大小和不透明度 这引入了两个问题 1 当节点
  • QTextCodec 子类 - 如何注册我的编解码器

    我需要创建自己的编解码器 即QTextCodec 我想通过使用它QTextCodec codecForName myname 然而 仅仅子类是不够的 QTextCodec availableCodecs 不包含我的编解码器名称 QTextC
  • 使用itextpdf提取的英文文本无法理解

    我正在尝试在控制台上从 pdf 中提取并打印英文文本 提取是通过 itextpdf API 使用 PdfTextExtractor 类完成的 我收到的文字无法理解 可能是我面临的一些语言问题 我的目的是在 PDF 中查找特定文本并将其替换为
  • 哪些 HTML5 元素有 onload/“load 事件”?

    Mozilla 的 MDN告知有关加载事件有了这个存根 当资源及其依赖资源时 将触发 load 事件 已完成加载 并链接到 标准1 这告知 可信目标 窗口 文档 元素 看来相关的onload处理程序 以及load因此 事件被设计为与 Ele
  • 如何停止Delphi处理某些控件标题中的前缀“&”字符?

    我发现如果我设置标题TPanel TLabel or TRadioGroup对于包含 字符的字符串 不显示该字符 并且下一个字符带有下划线 我怎样才能阻止这个 我希望标题与我设置的确切字符串一起显示 对于 TLabel 和 TStaticT
  • navigator.clipboard 未定义

    Why is navigator clipboard always undefined在下面的代码片段中 var clipboard navigator clipboard if clipboard undefined console lo
  • Mysql查询:使用通配符进行匹配

    我有一个名为 acts 的表 其中有 3 列一起索引 act name short description main description 在表格中 一行有一个名为 红色骚乱 的行为 当我执行以下搜索时 结果中出现红色骚乱 SELECT
  • 为什么在将字符串文字转换为 char* 时会收到编译器警告,这很糟糕吗?

    所以编译器告诉我这是从字符串文字到 char 的不推荐转换 char myString i like declaring strings like this 我应该担心这个吗 这是错误的方法吗 我需要通过myString到一个接受一个函数c
  • 如何从 datagridview 组合框中获取值?

    更改所选值后如何从 datagridview 组合框中获取值 您可以使用 var value DataGridView Rows 0 Cells 0 Value 注意 您需要提供正确的行号和单元格号 或者 如果它绑定到像 ListItem
  • 如何为 ipython 集群(ipcluster)设置 ssh 隧道

    我想在可 ssh 访问的服务器和其他一些机器上运行 ipython 集群 所有这些机器都可以通过 ssh 相互连接 网络不可信 我尝试使用我从文档中了解到的内容来设置 ssh 隧道 ipcontroller 和 ipengine 然而 我最
  • Express.js:是否可以像 res.render 一样将对象传递给重定向?

    EDIT 提出的解决方案在这个答案中是实现这一目标的正确方法 On a get节点中的请求我可以这样做 app get function req res res render index ejs message test 并发送一个对象以便
  • 这个指向成员的指针转换有什么问题?

    这段代码有什么问题 我想我可以因为这个答案而转换 向上转换 方法指针并将其与基类指针一起使用是否安全 struct B void f struct D B virtual D template
  • Spring MVC 中的内容协商

    我正在使用 Spring 3 编写一个 RESTful Web 应用程序 我的应用程序的一部分需要根据请求的媒体类型处理数据 RequestMapping public String process if requested media t
  • 如何隐藏Flex中的打印对话框?

    Flex 中是否可以隐藏打印对话框 我正在使用 FlexPrintJob 类 这是我的代码 var print FlexPrintJob new FlexPrintJob print printAsBitmap true if print
  • csrf_token 的问题

    我正在 django 教程中做 wiki 并且在教程中使用早期版本的 django 其中 csrf 令牌不是必需的 我已将 csrf token 添加到表单中 但我不确定在视图中要做什么 请帮忙 表格如下
  • 在 Oracle PL/SQL 中使用 ONLINE 将非分区表转换为分区表

    我了解到 我们无法将现有的非分区表转换为分区表 但以下来自 Oracle 的链接表明 在 ONLINE 关键字的帮助下我们可以做到这一点 https docs oracle com en database oracle oracle dat
  • sums 返回 String,仅适用于 postgresql

    我正在将数据库从 mysql 迁移到 postgres 按照 postgres 文档 迁移本身没问题 现在 我正在修复我们特定的 mysql 查询 在某些时候 我们现在有这样的情况 select SUM CASE WHEN income T
  • android sqlite如何按时间排序[重复]

    这个问题在这里已经有答案了 可能的重复 对于 Android 应用程序 如何按降序排列 SQLITE 数据库 我有下表 我想在其中选择表的内容 但按 C TAG SCAN TIME 字段 DESC 排序 public static fina
  • 在编译时确定 Nat 是否能被 5 整除的函数

    Using Cactus有帮助answer 我尝试编写一个函数 给定一个Nat 将返回Nat如果它能被整除5 onlyModBy5Helper n Nat gt k Nat k mod 5 0 gt Nat onlyModBy5Helper
  • 如何分享imageview的图片?

    我有 ImageView 我想分享它的图像 以下是我的代码 btshare setOnClickListener new OnClickListener Override public void onClick View v View co