如何分享imageview的图像? [英] How to share image of imageview?

查看:137
本文介绍了如何分享imageview的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有ImageView,我想共享它的图像.

I have ImageView and I want to share its image.

以下是我的代码,

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"));

             }  



    });

当我按下按钮时出现这些错误?

when i press the button i get these errors ?

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'

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

what should I do and what permissions my program needs ? I have already declared following permissions,

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

推荐答案

尝试以下代码共享您的图片:

Try below code to share your image:

    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/*");
    share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg"));
    startActivity(Intent.createChooser(share,"Share via"));

将这些权限添加到AndroidMenifest.xml

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

这篇关于如何分享imageview的图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆