Java 从应用程序文件夹共享图像

Java 从应用程序文件夹共享图像,java,android,Java,Android,我想从按钮的上单击共享图像 Javacode public void share(View v) { Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/*"); Uri a=Uri.parse("android.resource://"+getPackageName()+"/"+R.drawable.pic); Log.i("imageUri",""+imageUri);

我想从
按钮的
上单击
共享图像

Java
code

public void share(View v)
{
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/*");
    Uri a=Uri.parse("android.resource://"+getPackageName()+"/"+R.drawable.pic); 
    Log.i("imageUri",""+imageUri);
    share.putExtra(Intent.EXTRA_STREAM,a);
    startActivity(Intent.createChooser(share,"Share Image"));
}

由于此代码不起作用,我应该做哪些更改?

使用此代码共享图像:

注意:您必须在
Menifest
文件中添加
WRITE/READ EXTERNAL STORAGE
权限才能执行此操作:

           Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);
            String path = MediaStore.Images.Media.insertImage(getContentResolver(),
                    mBitmap, "Image Description", null);
            Uri uri = Uri.parse(path);

            Intent intent = new Intent(Intent.ACTION_SEND);
            Log.d("imageUri", "imageUriIs" + uri);
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.putExtra(Intent.EXTRA_SUBJECT, "");
            intent.putExtra(Intent.EXTRA_TEXT, shareMSG);
            intent.putExtra(Intent.EXTRA_TITLE, "TITLE");
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.setType("image/*");
            startActivity(Intent.createChooser(intent, "APPNAME"));
试试这个

首先您需要添加权限
写入外部存储

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

谢谢你的补充,先生@NileshRathod。我正在向你学习,伟大的开发者。。坚持下去
Bitmap b =BitmapFactory.decodeResource(getResources(),R.drawable.pic);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path =  MediaStore.Images.Media.insertImage(getContentResolver(),
                    b, "Title", null);
Uri a=  Uri.parse(path);
share.putExtra(Intent.EXTRA_STREAM, a);
startActivity(Intent.createChooser(share, "Select"));