android将画布另存为jpg图像
我在将画布保存到图像中时使用了此代码。这里是Oncreate中的函数 但保存的图像只有1,一旦我将另一个画布保存到图像,它将只覆盖第一个画布。请帮帮我。多谢各位android将画布另存为jpg图像,android,image,canvas,save,jpeg,Android,Image,Canvas,Save,Jpeg,我在将画布保存到图像中时使用了此代码。这里是Oncreate中的函数 但保存的图像只有1,一旦我将另一个画布保存到图像,它将只覆盖第一个画布。请帮帮我。多谢各位 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()); mTempDir =Environment.getExternalStoragePublicDirecto
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date());
mTempDir =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/" + "PixiePhotos" + "/";
mCurrent = "PXD_" + timeStamp + ".jpg";
prepareDirectory();
save.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {try {
mBitmapDrawable = new BitmapDrawable(viewBitmap);
mNewSaving = ((BitmapDrawable) mBitmapDrawable).getBitmap();
String FtoSave = mTempDir + mCurrent;
File mFile = new File(FtoSave);
mFileOutputStream = new FileOutputStream(mFile);
mNewSaving.compress(CompressFormat.JPEG, 100, mFileOutputStream);
mFileOutputStream.flush();
mFileOutputStream.close();
} catch (FileNotFoundException e) {
Log.v(TAG, "FileNotFoundExceptionError " + e.toString());
} catch (IOException e) {
Log.v(TAG, "IOExceptionError " + e.toString());
}
}
});
}
private boolean prepareDirectory() {
try {
if (makeDirectory()) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
//Toast.makeText(this, getString(R.string.sdcard_error), 1000).show();
return false;
}
}
private boolean makeDirectory() {
File mTempFile = new File(mTempDir);
if (!mTempFile.exists()) {
mTempFile.mkdirs();
}
if (mTempFile.isDirectory()) {
File[] mFiles = mTempFile.listFiles();
for (File mEveryFile : mFiles) {
if (!mEveryFile.delete()) {
//System.out.println(getString(R.string.failed_to_delete) + mEveryFile);
}
}
}
return (mTempFile.isDirectory());
}
我认为您只会获得一次时间戳,每次单击“保存”时都应该获取该时间戳
save.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {try {
mBitmapDrawable = new BitmapDrawable(viewBitmap);
mNewSaving = ((BitmapDrawable) mBitmapDrawable).getBitmap();
mCurrent = "PXD_" + new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date()); + ".jpg";
String FtoSave = mTempDir + mCurrent;
File mFile = new File(FtoSave);
mFileOutputStream = new FileOutputStream(mFile);
mNewSaving.compress(CompressFormat.JPEG, 100, mFileOutputStream);
mFileOutputStream.flush();
mFileOutputStream.close();
} catch (FileNotFoundException e) {
Log.v(TAG, "FileNotFoundExceptionError " + e.toString());
} catch (IOException e) {
Log.v(TAG, "IOExceptionError " + e.toString());
}
}
});
设置字符串timeStamp=new simpleDataFormatyyyymmdd\u HHmmss,
Locale.getDefault.formatnew日期;和mCurrent=PXD_u2;+时间戳+.jpg;在on click中,因为创建活动时只调用一次oncreate。您无法保存画布,您可以保存位图,但我已经得到了解决方案,谢谢:但我有另一个问题:@Tomasz先生您知道怎么做吗?请帮助我: