0

Я мог бы сохранить изображение в папке, которую хочу по моему коду, но это было недостаточно, потому что мой код выдавал копию изображения в моей папке и еще одну в галерее (DCIM) ,Сохранить изображение в указанной папке

Код:

 Btngetdata.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, 2); 
     } 
    }); 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     File a = new File (Environment.getExternalStorageDirectory().getAbsolutePath() + "/splash/"+name+"/"); 
     if (!a.exists()) { 
      a.mkdirs(); 
     } 
     if (requestCode == 2) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      ImageView test = (ImageView) findViewById(R.id.test); 
      test.setImageBitmap(photo); 
      try{ 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); 
       String currentDateandTime = sdf.format(new Date()).replace(" ",""); 
       FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath() + "/splash/"+name+"/"+currentDateandTime+".jpg"); 
       photo.compress(Bitmap.CompressFormat.PNG, 100 , out); 

       out.flush(); 
       out.close(); 
      }catch (Exception e){ 
       e.printStackTrace(); 
      } 
     } 
    } 

Я не могу использовать этот код или что-нибудь подобное.

 Btngetdata.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      f = new File(Environment.getExternalStorageDirectory().getPath() + "/tmp/"+"tmp.png"); 
      if (!f.exists()) { 
       f.mkdirs(); 
      } 
      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
      startActivityForResult(cameraIntent, 2); 
     } 
    }); 

им все дают мне ниже LogCat

04-17 20:41:24.974: E/AndroidRuntime(13913): FATAL EXCEPTION: main 
04-17 20:41:24.974: E/AndroidRuntime(13913): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=0, data=null} to activity {com.example.sofrehkhane/com.sofrehKhane.slidingmenu.slidinglist.SingleItemView}: java.lang.NullPointerException 
04-17 20:41:24.974: E/AndroidRuntime(13913): at  android.app.ActivityThread.deliverResults(ActivityThread.java:3462) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.ActivityThread.access$1100(ActivityThread.java:150) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.os.Looper.loop(Looper.java:213) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.ActivityThread.main(ActivityThread.java:5225) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at java.lang.reflect.Method.invokeNative(Native Method) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at java.lang.reflect.Method.invoke(Method.java:525) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at dalvik.system.NativeStart.main(Native Method) 
04-17 20:41:24.974: E/AndroidRuntime(13913): Caused by: java.lang.NullPointerException 
04-17 20:41:24.974: E/AndroidRuntime(13913): at com.sofrehKhane.slidingmenu.slidinglist.SingleItemView.onActivityResult(SingleItemView.java:102) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.Activity.dispatchActivityResult(Activity.java:5322) 
04-17 20:41:24.974: E/AndroidRuntime(13913): at android.app.ActivityThread.deliverResults(ActivityThread.java:3458) 
04-17 20:41:24.974: E/AndroidRuntime(13913): ... 11 more 

Я буду рад, если ты ведешь меня, чтобы решить эту проблему.

Я хочу использовать "setOnClickListener (новый OnClickListener() {" для кнопки, чтобы принять ПОС и использовать "общественный недействительный onActivityResult (INT requestCode, INT ResultCode, Intent данные) {", чтобы сохранить взятый рис.

UPDATE:. с помощью этого link я получил лучший ответ и производительность для моего приложения

+0

Там в NullPointerException на com.sofrehKhane.slidingmenu.slidinglist.SingleItemView.onActivityResult (SingleItemView.java:102). Пожалуйста, разместите код вокруг этой строки. – cygery

+0

@cygery Я отредактировал вопрос и разместил код как обновление – alireza

+0

Какая строка линии 102? – cygery

ответ

0

в строке

Bitmap photo = (Bitmap) data.getExtras().get("data"); 

data является null согласно ст acktrace. Вы должны проверить на null и действовать соответственно.

Кроме того, проверить этот ответ: https://stackoverflow.com/a/10779050/2367849

+0

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

+0

Насколько я могу судить, вы не можете препятствовать тому, чтобы приложение камеры по умолчанию сохраняло изображение в галерее. Однако вы можете удалить его из галереи. – cygery

+0

Я бы сделал это, я протестировал решение, которое я нашел в stackoverflow, но это не решает эту проблему. Прошло 12 часов, я ищу рабочее решение, но ничего не появилось. – alireza

 Смежные вопросы

  • Нет связанных вопросов^_^