0

android.myコードで指定されたパスから画像を共有したいのですが、Facebook、Googleドライブなどのように画像を共有していません!、私の共有インテントは他のアプリケーションに画像を送信しません!。私のコードの何が間違っているのか、誰もが大いに感謝するのに役立ちます!

これが私のコードです:

                File wallpaperDirectory = new File("/sdcard/myimage/");
                // have the object build the directory structure, if needed.
                wallpaperDirectory.mkdirs();

                File file = new File(wallpaperDirectory, "Share.jpg");
                try {
                    fOut = new FileOutputStream(file);
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
                    fOut.flush();
                    fOut.close();
                    MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(), e.toString(),5000).show();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri screenshotUri = Uri.parse(file.getAbsolutePath());

            sharingIntent.setType("image/jpg");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
            startActivity(Intent.createChooser(sharingIntent, "Share image using"));

これがmyoutputです:

ここに画像の説明を入力してください

クリック後のオプションは他のアプリケーションと画像を共有しません!

4

2 に答える 2

0

リンクの下に画像共有のための良いチュートリアルがあります:

http://collegewires.com/android/2012/06/android-implementing-a-share-intent/

私の問題は、ファイルパスが正しくないことです。file://

以下のコードのように:

                Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                Uri screenshotUri = Uri.parse("file://" + file.getAbsolutePath());

                sharingIntent.setType("image/jpg");
                sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
                startActivity(Intent.createChooser(sharingIntent, "Share image using"));

今、私の問題は解決しました!

于 2012-08-13T08:15:44.653 に答える
0

bitmapすでにビットマップが変数にロードされている場合は、これを試してください:

                Uri U = null;
                File folderShare = new File(btnShare.getContext().getExternalFilesDir(null) + "/download/");
                folderShare.mkdirs();
                File fileShare = new File(folderShare, "Image-android.jpg");
                fileShare.delete();
                fileShare = new File(folderShare, "Image-android.jpg");
                if (fileShare.isFile())
                        try {    
                            FileOutputStream out = new FileOutputStream(fileShare);
                            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
                             U = Uri.fromFile(fileShare);
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                       } catch (FileNotFoundException e) {
                           e.printStackTrace();
                       } catch (IOException e) {
                           e.printStackTrace();                       

                String email_subject = getString(R.string.email_subject);
                String email_content = getString(R.string.email_content);
                String email_chooser = getString(R.string.email_chooser);

                final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

                emailIntent.setType("text/plain");
                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, email_subject);
                emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, U);
                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, email_content);

                v.getContext().startActivity(Intent.createChooser(emailIntent, email_chooser));
于 2012-08-13T08:58:03.650 に答える