サインができるアプリを作りました。画像の保存に困っています。それはstrings.xmlで指定したフォルダーであり、フォルダーが作成されるため、ファイルはsdcard/signatureに保存されると思います。ただし、代わりに、画像を sdcard/signature フォルダーではなく、DCIM/camera フォルダーに保存しました。
DCIMフォルダーから画像を削除することについてはすでに読んだので、問題ありません。しかし、画像がSD /署名に保存されない理由を誰かが教えてくれれば、本当に感謝します
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();
}
}
});
最後に、これはフォルダーが準備される場所です(これが関係があるかどうかはわかりません)
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>
私が間違っていることを見ている人はいますか?
前もって感謝します!