Я сделал образец приложения для рисования с помощью приложения 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();
}
Я хочу знать, как сохранить рисунок с помощью кнопки меню?
Спасибо
Можете ли вы просто получить доступный от t взгляд и использовать его? – akonsu
no I can not @Akonsu .... В идеале я должен иметь возможность getRootView с помощью объекта LinearLayout. Но в этом случае нет макета, поэтому я не получаю источники getRootView. –
почему бы и нет? есть ли технические трудности? вы получаете сообщение об ошибке? – akonsu