Ich verwende MyView
zum Zeichnen von Inhalt auf einer Leinwand mit FingerPaint API
Demo-App. Ich möchte alles einfangen, was ich auf die Leinwand geschrieben habe. Aber wenn ich View v1 = myview.getRootView()
verwende, gibt es nur die leere Leinwand und nicht den Inhalt zurück. Ich möchte meine Zeichnung in SDCard speichern. Folgendes ist mein Code. Lassen Sie mich wissen, was tun müssen, um iAbrufen der Zeichnung auf dem Canvas mit getRootView
v1 = myview.getRootView();
System.out.println("v1 value = "+v1);
v1.buildDrawingCache(true);
v1.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
//v1.layout(0, 0, v1.getMeasuredWidth(), v1.getMeasuredHeight());
v1.layout(0, 0, 100, 100);
//Bitmap b = Bitmap.createBitmap(v1.getDrawingCache());
myview.mBitmap = Bitmap.createBitmap(v1.getDrawingCache());
System.out.println("BITMAP VALue = "+myview.mBitmap);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
//b.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
File f = new File(Environment.getExternalStorageDirectory()+ File.separator + "test.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
} catch (Exception e)
{
e.printStackTrace();
}
v1.setDrawingCacheEnabled(false);
myview
ist ein Objekt der Klasse MyView
die View
erstreckt.