APIDemoのFingerPaintアプリを使用してサンプルペイントアプリを作成しました。setContentView(R.layout.main)の「通常の」パターンの代わりに、Viewを拡張してコンテンツをsetContentView(new MyView(this));として設定するクラスMyViewを使用します。今私が描くものは何でもSDカードに保存したいと思います。このためには、getRootViewを使用してルートビューを知る必要があります。これは、layoutのオブジェクトによって取得されます(例:LinearLayout L1 = new ...)L1.getRootView。このMyViewを使用しているため、ルートビューを取得することも、ビットマップを保存することもできません。
myview.setDrawingCacheEnabled(true);
myview.requestFocus();
myview.getRootView();
System.out.println("MYVIEW = "+myview);
myview.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
myview.layout(0, 0, myview.getMeasuredWidth(), myview.getMeasuredHeight());
myview.buildDrawingCache(true);
mBitmap = myview.getDrawingCache();
//System.out.println("myview.getDrawingCache() = "+newview.getDrawingCache());
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
myview.setDrawingCacheEnabled(false); // clear drawing cache
System.out.println("BITMAP = "+mBitmap);
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();
}
メニューボタンのクリックを使用して図面を保存する方法を知りたいですか?
ありがとうございました