2

カメラで撮影した写真をカスタムフォルダーに保存するだけのカメラアプリに取り組んできました。重複する問題を見つけることができなかったという奇妙なエラーが発生しました。私のアプリは、必要に応じて画像を取得してフォルダーに保存しますが、画像は表示できません。これに関するさらに奇妙な部分は、Camera Shots フォルダー (私の電話のデフォルトの写真保存場所) に保存されている画像のコピーが表示可能であることです。さまざまな方法でコードを修正しようとしましたが、それでも同じ結果が得られます。以下は私のコードです。どんな助けでも大歓迎です!ありがとうございました!

camera.setOnClickListener(new View.OnClickListener() {              
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                     String name = Environment.getExternalStorageDirectory().toString();
                        File mainFolder = new File(name + "/Filename/");    
                            mainFolder.mkdirs();
                            Random generator = new Random();
                            int random = 10000;
                            random = generator.nextInt(random);
                            String fileName = "Image-"+ random +".jpg";
                            File file = new File (mainFolder, fileName);
                            if (file.exists ()) file.delete (); 
                            try {
                                   FileOutputStream stream = new FileOutputStream(file);
                                   bmp.compress(Bitmap.CompressFormat.JPEG, 90, stream);
                                   stream.flush();
                                   stream.close();

                            } catch (Exception e) {
                                   e.printStackTrace();
                            }

                    startActivityForResult(i, cameraData); 
                }

            });
4

1 に答える 1

0

私はそれを考え出した。URIがありませんでした。以下は、この問題に遭遇する可能性のある人のための更新された (そして動作する) コードです。

camera.setOnClickListener(new View.OnClickListener() {              
            public void onClick(View v) {
                // TODO Auto-generated method stub

                i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                 String name = Environment.getExternalStorageDirectory().toString();
                    File mainFolder = new File(name + "/Filename/");    
                        mainFolder.mkdirs();
                        Random generator = new Random();
                        int random = 10000;
                        random = generator.nextInt(random);
                        String fileName = "Image-"+ random +".jpg";
                        File file = new File (mainFolder, fileName);
                        Uri uriSavedImage = Uri.fromFile(file);
                        i.putExtra("output", uriSavedImage);

                startActivityForResult(i, cameraData); 
            }

        });
于 2012-12-28T22:33:09.953 に答える