0

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();
    }

メニューボタンのクリックを使用して図面を保存する方法を知りたいですか?

ありがとうございました

4

1 に答える 1

0

研究に多大な努力を払った後、私はこれにぶつかりましたhttp://blahti.wordpress.com/2010/11/18/how-to-save-jpeg-files-in-the-android-emulator/これは私の問題を解決しました図面を保存します。

于 2012-04-12T14:26:28.287 に答える