2016-10-24 2 views
0
 save.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View b) { 
      if ((d1.getText().toString().trim().equals("")) && d2.getText().toString().trim().equals("") 
        && d3.getText().toString().trim().equals("") && d4.getText().toString().trim().equals("") && d5.getText().toString().trim().equals("") 
        && d6.getText().toString().trim().equals("")) 
      { 
       Toast.makeText(getApplicationContext(), "Generate before Save", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), "Your Qr Image Has Been Save in /DCIM/Camera ", Toast.LENGTH_SHORT).show(); 

       // TODO Auto-generated method stub 
       //attempt to save the image 

       b = findViewById(R.id.image); 
       b.setDrawingCacheEnabled(true); 
       Bitmap bitmap = b.getDrawingCache(); 
       File file = new File("/DCIM/Camera/"); 
       File root = Environment.getExternalStorageDirectory(); 
       File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpeg"); 
       try { 
       cachePath.createNewFile(); 
       FileOutputStream ostream = new FileOutputStream(cachePath); 

       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, ostream); 
        ostream.flush(); 
        ostream.close(); 


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

     } 
    }); 


    } 





} 

Есть ли способ сохранить другое изображение из моего изображения вместо того, чтобы перезаписать предыдущее изображение? кстати, этот код работал, но я не могу сохранить другое изображение с другим именем. Кто-нибудь может мне помочь?Как сохранить другое изображение в android?

+0

Укажите, пожалуйста, код всей деятельности – grant

+0

Использовать Path.GetTempFileName()? –

ответ

0

Вы даете то же имя для всего изображения File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpeg");, просто измените его или добавьте метку времени в конце.

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image" + timeStamp + ".jpeg"); 
+0

Спасибо, сэр, ваш код действительно работал, но, если возможно, есть ли способ изменить метку времени на инкрементное число, например IMG1, IMG2, IMG3? –

+0

создать статический счетчик в baseclass или сохранить счетчик в sharedpreferences и увеличить его всякий раз, когда вы добавляете новые изображения \ –

+0

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

0

вы должны изменить

File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpeg"); 

возможно работы вокруг

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

String renmae=editText.getText().toString(); 
File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/" + renmae+ ".jpeg"); 

или еще сохранить имя с помощью TIMESTAMP

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image" + timeStamp + ".jpeg"); 
+0

большое спасибо, сэр, это работал –

+0

Спасибо, сэр, ваш код действительно сработал, но если возможно, есть ли способ изменить метку времени на инкрементное число, например IMG1, IMG2, IMG3? –

+0

Да, используйте статическую переменную типа данных int и добавьте ее в кеш Файла Статический int i = 1; 'Файл cachePath = новый файл (root.getAbsolutePath() +"/DCIM/Camera/"+ renmae +" "+ i +". Jpeg ");' ** после сохранения ** изменить i = i ++; // для увеличения i до 2 @HarrisFreds –

0

использовать этот код:

String imageName="image-"+System.currentTimeMillis()+".jpeg"; 

File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/"+imageName); 

Все времена, ImageName отличается.

+0

спасибо, что ваш код действительно работал, но если это возможно, есть ли способ изменить метку времени на инкрементное число, например IMG1, IMG2, IMG3? –

+0

вы можете добавить одну переменную variable.and ее прирост на 1.so u решил вашу проблему. – dipali

0
save.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View b) { 
      if ((d1.getText().toString().trim().equals("")) && d2.getText().toString().trim().equals("") 
        && d3.getText().toString().trim().equals("") && d4.getText().toString().trim().equals("") && d5.getText().toString().trim().equals("") 
        && d6.getText().toString().trim().equals("")) 
      { 
       Toast.makeText(getApplicationContext(), "Generate before Save", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), "Your Qr Image Has Been Save in /DCIM/Camera ", Toast.LENGTH_SHORT).show(); 

       // TODO Auto-generated method stub 
       //attempt to save the image 

       b = findViewById(R.id.image); 
       b.setDrawingCacheEnabled(true); 
       Bitmap bitmap = b.getDrawingCache(); 
       File file = new File("/DCIM/Camera/"); 
       File root = Environment.getExternalStorageDirectory(); 
       File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image_"+System.currentTimeMillis()+".jpeg"); 
       try { 
       cachePath.createNewFile(); 
       FileOutputStream ostream = new FileOutputStream(cachePath); 

       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, ostream); 
        ostream.flush(); 
        ostream.close(); 
     MediaStore.Images.Media.insertImage(getContentResolver(),cachePath.getAbsolutePath(),cachePath.getName(),cachePath.getName()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 

     } 
    }); 

    } 
+0

спасибо, сэр. –

+0

Благодарю вас, сэр, ваш код действительно сработал, но, если возможно, есть ли способ изменить метку времени на инкрементное число, например IMG1, IMG2, IMG3? –

+0

@HarrisFreds Вы можете использовать один int count вместо System.currentTimeMillis(). int Count = 1; "/DCIM/Camera/image_"+Count+".jpeg"); ... Кол-во записей: 2; –