如何在图库中保存许多 imageview 副本
Posted
技术标签:
【中文标题】如何在图库中保存许多 imageview 副本【英文标题】:How can I save many copy of imageview in gallery 【发布时间】:2017-08-31 02:40:09 【问题描述】:我将我的imageview
保存到图库,但是当我保存另一个imageview
时,它将替换前一个,我不知道为什么file.createNewFile();
被忽略。如何为我的 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);
);
【问题讨论】:
【参考方案1】:尝试使用UUID.randomUUID()
而不是imagename
我认为图像名称总是相同的,这就是它替换旧图像的原因
【讨论】:
感谢您的回答。它现在有效,我现在明白我的问题是什么。【参考方案2】:你可以把当前时间作为文件名::
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);
);
【讨论】:
以上是关于如何在图库中保存许多 imageview 副本的主要内容,如果未能解决你的问题,请参考以下文章
如何从图库和相机的 imageview 中设置图像? [复制]