Как сохранить холст для рисования в Android? - PullRequest
5 голосов
/ 18 ноября 2011

Я использую эту демонстрацию API сайта разработчика, НАСТОЯЩЕЕ ДЕМО.

Но мне интересно, как сохранить это изображение в My Andrtoid Device.Кто-нибудь может дать код, чтобы сохранить нарисованное изображение на устройстве Android.

Спасибо.

Ответы [ 3 ]

12 голосов
/ 18 ноября 2011

попробуйте этот код

View content = your_view;
content.setDrawingCacheEnabled(true);
content.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
Bitmap bitmap = content.getDrawingCache();
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path+"/image.png");
FileOutputStream ostream;
try {
    file.createNewFile();
    ostream = new FileOutputStream(file);
    bitmap.compress(CompressFormat.PNG, 100, ostream);
    ostream.flush();
    ostream.close();
    Toast.makeText(getApplicationContext(), "image saved", 5000).show();
} catch (Exception e) {
    e.printStackTrace();
    Toast.makeText(getApplicationContext(), "error", 5000).show();
}
1 голос
/ 18 ноября 2011
drawView.setDrawingCacheEnabled(true);
Bitmap bm = null;
drawView.destroyDrawingCache();
bm=drawView.getDrawingCache();

Затем запишите растровое изображение в файл, используя фабрику растровых изображений.

0 голосов
/ 18 ноября 2011

Один из вариантов - создать другой холст (как показано ниже) и повторить весь рисунок на этом новом холсте. После этого вызовите drawBitmap.

Bitmap bitmap = new Bitmap(// Set the params you like //);
Canvas canvas = new Canvas(bitmap);

// Do all your drawings here

canvas.drawBitmap(// The first picture //);

Лучше всего было бы, если бы был способ скопировать существующий холст, и тогда вам не нужно будет перерисовывать все, но я не смог его найти.

...