【发布时间】:2013-09-27 06:09:28
【问题描述】:
我有一个应用程序,您可以在上面签名。我无法保存图像。我希望该文件保存在 sdcard/signature 中,因为那是我在 strings.xml 中指定的文件夹并创建了该文件夹。而是将图像保存到 DCIM/camera 文件夹,而不是 sdcard/signature 文件夹中。
我已经阅读了有关从 DCIM 文件夹中删除图像的信息,所以这不是问题。但如果有人能告诉我为什么图像没有保存在 sd/signature 中,我真的很感激
在 onCreate 中会发生这种情况(外部目录只是一个名称,例如 StoreSignature 用于存储图像的文件夹):
tempDir = Environment.getExternalStorageDirectory() + "/" + getResources().getString(R.string.external_dir) + "/";
ContextWrapper cw = new ContextWrapper(getApplicationContext());
File directory = cw.getDir(getResources().getString(R.string.external_dir), Context.MODE_PRIVATE);
这是保存方法:
mGetSign.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.v("log_tag", "Panel Saved");
boolean error = captureSignature();
if(!error){
mView.setDrawingCacheEnabled(true);
mSignature.save(mView);
Bundle b = new Bundle();
String status = "done";
File path = mypath;
Log.i("info4", path.toString());
String[] arr={status, path.toString()};
b.putStringArray("status", arr);
Log.i("info5", arr.toString());
Intent intent = new Intent();
intent.putExtras(b);
setResult(RESULT_OK,intent);
finish();
}
}
});
最后这是准备文件夹的地方(不知道这是否与is有关)
private boolean prepareDirectory()
{
try
{
if (makedirs())
{
return true;
} else {
return false;
}
} catch (Exception e)
{
e.printStackTrace();
Toast.makeText(this, "Kan het file systeem niet vinden.. Zit de SD-kaart er goed in?", 1000).show();
return false;
}
}
/**
* Creates a directory
*
* @return whether the directory is created or not
*/
private boolean makedirs()
{
File tempdir = new File(tempDir);
if (!tempdir.exists())
tempdir.mkdirs();
if (tempdir.isDirectory())
{
File[] files = tempdir.listFiles();
for (File file : files)
{
if (!file.delete())
{
System.out.println("Deleten is mislukt " + file);
}
}
}
return (tempdir.isDirectory());
}
Strings.xml(签名值)
<string name="cancel">Annuleren</string>
<string name="clear">Opnieuw</string>
<string name="save">Opslaan</string>
<string name="naam">Naam</string>
<string name="external_dir">Handtekening</string>
<string name="input"></string>
<string name="title_activity_signature">Handtekening</string>
有没有人看到我做错了什么?
提前致谢!
【问题讨论】:
-
你能显示你的字符串 XML 吗?
-
当然,我现在正在添加它。只有签名部分会做吗?因为我的 strings.xml 有点大。
-
使用下面的链接。它将解决您的问题 [Android 将文件保存到外部存储][1] [1]:stackoverflow.com/questions/7887078/…
-
谢谢,它有效!只需将 jpeg 压缩更改为 PNG 压缩。我之前尝试过该解决方案并得到了黑色图像,但它现在可以工作了