如何在图库中保存多份imageview图案

如何在图库中保存多份imageview图案

问题描述:

我正在将图库imageview保存到图库中,但是当我另存为imageview时,它将替换上一张图片,我不知道为什么file.createNewFile();被忽略。如何为我的imageview保存不同的图像文件?以下代码。如何在图库中保存多份imageview图案

save.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      RelativeLayout content = (RelativeLayout) findViewById(R.id.dashBoard); 
      content.setDrawingCacheEnabled(true); 
      Bitmap bitmap = content.getDrawingCache(); 
      File file = new File(Environment.getExternalStorageDirectory().getPath()+ imagename+ ".png"); 

      try { 
       if (!file.exists()) { 
        file.createNewFile(); 

       } 
       FileOutputStream ostream = new FileOutputStream(file); 
       bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream); 
       ostream.close(); 
       content.invalidate(); 
       Toast.makeText(getApplicationContext(), "SAVED", Toast.LENGTH_SHORT).show(); 
      } catch (Exception e) { 
        e.printStackTrace(); 

      } finally { 
       content.setDrawingCacheEnabled(false); 
      } 
     } 
    }); 

尝试使用UUID.randomUUID()代替imagename 我认为imagename始终是相同的,这就是为什么它取代旧的

+0

谢谢你的回答。它现在有效,我现在明白我的问题是什么。欢迎您来到我们的网站: –

+0

,享受它吧 –

你可以把当前时间作为文件名::

save.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     RelativeLayout content = (RelativeLayout) findViewById(R.id.dashBoard); 
     content.setDrawingCacheEnabled(true); 
     Bitmap bitmap = content.getDrawingCache(); 
     Date d = new Date(); 
     CharSequence imagename = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime()); 
     File file = new File(Environment.getExternalStorageDirectory().getPath()+ imagename+ ".png"); 

     try { 
      if (!file.exists()) { 
       file.createNewFile(); 

      } 
      FileOutputStream ostream = new FileOutputStream(file); 
      bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream); 
      ostream.close(); 
      content.invalidate(); 
      Toast.makeText(getApplicationContext(), "SAVED", Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
       e.printStackTrace(); 

     } finally { 
      content.setDrawingCacheEnabled(false); 
     } 
    } 
});