Ich möchte über einen Button einen Screenshot meiner Activity machen und diese als PNG in einem automatisch erstellten Ordner abspeichern.
Das funktioniert wunderbar. Das Problem ist, wenn ich erneut auf den Button klicke, überschreibt er den alten Screenshot mit dem neuen Screenshot in dem Ordner, anstatt eine neue Datei abzuspeichern.
Wie bringe ich es zusammen, dass er einfach z.b. den neuen Screenshot als Screenshot(1).png abspeichert, ohne dass er die 1. Datei Screenshot.png einfach überschreibt ?
Das funktioniert wunderbar. Das Problem ist, wenn ich erneut auf den Button klicke, überschreibt er den alten Screenshot mit dem neuen Screenshot in dem Ordner, anstatt eine neue Datei abzuspeichern.
Wie bringe ich es zusammen, dass er einfach z.b. den neuen Screenshot als Screenshot(1).png abspeichert, ohne dass er die 1. Datei Screenshot.png einfach überschreibt ?
Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btnScreenshot = (Button) findViewById(R.id.btnScreenshot); /
String fileName = "Screenshot.png";
btnScreenshot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
Bitmap bitmap = getScreenShot(rootView);
createDirectory();
store(bitmap, fileName);
}
});
}//Close OnCreate
//Get Screenshot of the Activity
//
public static Bitmap getScreenShot(View view) {
View screenView = view.getRootView();
screenView.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
screenView.setDrawingCacheEnabled(false);
return bitmap;
}
//Create Directory for Screenshot
//
public void createDirectory() {
String screenshotdirectory = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Screenshot";
File folderScreenshot = new File(screenshotdirectory);
if (folderScreenshot.exists()) {
Toast.makeText(this, "Folder already exist", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Creating Folder Screenshot", Toast.LENGTH_SHORT).show();
folderScreenshot.mkdirs();
}
}
//Store the Screenshot File in Screenshot Directory
//
public void store(Bitmap bm, String fileName) {
String dirPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Screenshot;
File file = new File(dirPath, fileName);
try {
FileOutputStream fos = new FileOutputStream(file, true);
bm.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "Error!", Toast.LENGTH_SHORT).show();
}
}