2016-08-16 6 views
1

// это мой кодУ меня есть это приложение, где вы берете фотографии и сохраняются в галерее, но после того, они не появляются, я должен перезагрузить устройство

public class MainActivity extends AppCompatActivity { 

     int TAKE_PHOTO_CODE = 0; 
     public static int count = 0; 
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/"; 
      File newdir = new File(dir); 
      newdir.mkdirs(); 

      Button capture = (Button) findViewById(R.id.btnCapture); 
      capture.setOnClickListener(new View.OnClickListener() { 

       public void onClick(View v) { 

        count++; 
        String file = dir + count + ".jpg"; 
        File newfile = new File(file); 
        try { 
         newfile.createNewFile(); 
        } catch (IOException e) { 
        } 
        Uri outputFileUri = Uri.fromFile(newfile); 

        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

        startActivityForResult(cameraIntent, TAKE_PHOTO_CODE); 


       } 
      }); 

//Help with the refresh please 
// I have this application where you take pictures and are saved in gallery , but after taking them do not appear, I have to restart my device 

    } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) { 
      Log.d("CameraDemo", "Pic saved"); 
     } 
    } 
} 

ответ

0

Я использую следующую операцию, которая используется для отображения сделанного снимка, и где снятое изображение сохраняется в виде растрового изображения. вы можете использовать кнопку сохранения для сохранения ваших снимков в вашей папке.

String fileSavedPath; 
     Log.d("tag", "Utility.storage_path : " + Utility.storage_path); 
     File var4 = new File(Environment.getExternalStorageDirectory() 
       .toString() + File.separator + Utility.storage_path); //your path 
     var4.mkdirs(); 
     String var2 = (new SimpleDateFormat("yyyyMMdd_HH_mm_ss")) 
       .format(new Date()); 
     var4 = new File(var4, "Frame_" + var2 + ".png"); 
     fileSavedPath = var4.getAbsolutePath(); 
     if (var4.exists()) { 
      var4.delete(); 
     } 
     try { 
      FileOutputStream var5 = new FileOutputStream(var4); 
      Utility.tempBitmap.compress(CompressFormat.JPEG, 80, var5); //convert your image in bitmap 
      var5.flush(); 
      var5.close(); 
      MediaScannerConnection.scanFile(ImageEditingActivity.this, 
        new String[] { fileSavedPath }, 
        new String[] { "image/png" }, 
        (OnScanCompletedListener) null); 
      /* 
      * Toast.makeText(ImageEditingActivity.this, 
      * "Collage is saved at " + fileSavedPath, 0).show(); 
      */ 
     } catch (Exception var3) { 
      var3.printStackTrace(); 
      ImageEditingActivity.this.runOnUiThread(new Runnable() { 
       public void run() { 
        /* 
        * Toast.makeText(ImageEditingActivity.this, 
        * "Some thing wrong happen", 0).show(); 
        */ 
       } 
      }); 
     } 
+0

Я попробую поблагодарить вас –

0

Попробуйте ниже код, он работает для меня, это показывает изображения только после того, как мы не берем его в галерее, не нужно перезагрузить устройство:

private static final int REQUEST_CODE_CAMERA_PICTURE = 1001; 
    private static final String SCAN_DOCUMENTS_DIR = "Pic_Saved_Directory"; 
    private String scanedImageAbsolutePath; 

    public void openScanActivity() { 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     createDir(); 
     File scanedImageFile = new File(Environment.getExternalStorageDirectory(), SCAN_DOCUMENTS_DIR +"/image_"+ System.currentTimeMillis()+".jpg"); 
     scanedImageAbsolutePath = scanedImageFile.getAbsolutePath(); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(scanedImageFile)); 
     getActivity().startActivityFromFragment(this, intent, REQUEST_CODE_CAMERA_PICTURE); 
    } 

    private void createDir(){ 
     File directory = new File(Environment.getExternalStorageDirectory(), SCAN_DOCUMENTS_DIR); 
     if (!directory.exists()) { 
      directory.mkdirs(); 
     } 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode == REQUEST_CODE_CAMERA_PICTURE && resultCode == Activity.RESULT_OK) { 
      //image will be available on : scanedImageAbsolutePath 
      Toast.makeText(getActivity(), "Pic Saved", Toast.LENGTH_SHORT).show(); 

     } else { 
      Toast.makeText(getActivity(), "Pic Not Saved", Toast.LENGTH_SHORT).show(); 
     } 
    } 

Кроме того, необходимо отметить следующее разрешение в вашем AndroidManifest файле:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
+0

Спасибо, но не работает для меня:/ –