MyView
デモアプリを使用してキャンバスにコンテンツを描画するために使用していますFingerPaint API
。キャンバスに書いたものは何でもキャプチャしたい。しかし、私が使用View v1 = myview.getRootView()
すると、コンテンツではなく空白のキャンバスのみが返されます。描いた絵をSDカードに保存したいです。以下は私のコードです。何を変更する必要があるか教えてください
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
MyView
を拡張するクラスのオブジェクトですView
。