私はandroid studio
で働いています。私がカメラを使用しているapp
を構築する。私は私のアプリを実行すると、アプリは正常に動作します。私はイメージをキャプチャしたイメージをキャプチャします。しかし、私が作成したフォルダはギャラリーに表示されていません。私はlocal storage
に画像を保存していますが、SD CARD
には保存していません。私は非常に興味があったので、フォルダーが作成されないので、私のギャラリーにあるはずですので、私に何のエラーも与えません。だから私は私のデバイスを再起動し、再起動後に私は自分のギャラリー内のフォルダとそれで撮影された画像を見ることができます。私は再びアプリケーションを開いて、そこから画像を撮ったが、画像はフォルダに表示されなかった。以下は私のアプリから写真を撮ると画像ディレクトリが作成されない
は、私は以下
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE)
{
if(resultCode == Activity.RESULT_OK)
{
Bitmap bmp = (Bitmap)data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
// convert byte array to Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
if(isStoragePermissionGranted())
{
SaveImage(bitmap);
}
}
}
private void SaveImage(Bitmap finalBitmap) {
String root = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
Log.v(LOG_TAG, root);
File myDir = new File(root + "/captured_images");
myDir.mkdirs();
Random generator = new Random();
int n = 1000;
n = generator.nextInt(n);
String fname = "Image-" + n + ".jpg";
File file = new File(myDir,fname);
if (file.exists())file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG,100,out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
画像を保存するために、TAのディレクトリを作っていた中で、私のコードで私のデバッグの絵は注意**
です:**
私はネイティブカメラを使用しているので、画像はカメラのロールフォルダ、つまりデバイスのデフォルトフォルダに保存されます。しかしそこに保存されている画像は圧縮されていないので、圧縮画像は作成したフォルダに保存する必要があります。
私はそれに固執し、何をすべきかわかりません。
ご協力いただければ幸いです。
はsaveImage'メソッド呼び出し、この '' sendBroadcast後(新しいテント( Intent.ACTION_MEDIA_MOUNTED、 Uri.parse( "ファイル://は、" + Environment.getExternalStorageDirectoryは()))); ' – sajan
が試みとなってこのエラー 'java.lang.RuntimeException:結果を返すResultInfo {who = null、request = 1888、result = -1、data =インテント{行=インラインデータ(エクストラ)}}アクティビティ' – faisal1208
** Android 4.4 ** '' sendBroadcast(新しいテント(Intent.ACTION_MEDIA_MOUNTED、Uri.parse( "ファイル://" + Environment.getExternalStorageDirectory())));のAndroid 4.4から '' ** ** ( "/ sdcard//"ファイルは新しいファイルに保存されています。) "" sendBroadcast(新しいインテント(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE、Uri.parse( "file://" Environment.getExternalStorageDirectory())); '' – sajan