2012-04-09 3 views
0

Я сделал образец приложения для рисования с помощью приложения FingerPaint от APIDemo. Вместо «обычного» шаблона setContentView (R.layout.main) он использует класс MyView, который расширяет представление и устанавливает контент как setContentView (новый MyView (this)); теперь, что бы ни рисовал, я хочу сохранить его в SDCard. Для этого мне нужно знать rootview с помощью getRootView. Это получает объект макета (например: LinearLayout L1 = new ...) L1.getRootView. Поскольку я использую этот MyView, я не могу получить rootview и не могу сохранить растровое изображение.Сохранение рисунка, выполненного с использованием кода FingerPaint.java, в android

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

Я хочу знать, как сохранить рисунок с помощью кнопки меню?

Спасибо

+0

Можете ли вы просто получить доступный от t взгляд и использовать его? – akonsu

+0

no I can not @Akonsu .... В идеале я должен иметь возможность getRootView с помощью объекта LinearLayout. Но в этом случае нет макета, поэтому я не получаю источники getRootView. –

+0

почему бы и нет? есть ли технические трудности? вы получаете сообщение об ошибке? – akonsu

ответ

Смежные вопросы