3

Здравствуйте. Программирую под систему Android OS. Пишу виджет-класс, наследующий View. В методе обратного вызова (callback-method) - onDraw(Canvas canvas) происходит отрисовка графических примитивов и Bitmap'ов по мере взаимодействия пользователя с данным виджетом. Хотел бы реализовать метод, позволяющий сохранить все, что отрисовывалось в ходе многократного вызова onDraw на canvas'е, в файл (.jpg, .png). Каким образом вообще осуществляется сохранение всего отрисованного в каком-то объекте (в данном случае Canvas) в файл? Какая цепочка классов вообще нужна для такой операции? С текстовыми и двоичными файлами были потоки StreamWriter, FileWriter и т.д. Подозреваю и тут такое потребуется, но как вообще перейти от Canvas'а с его содержимым к конечному файлу картинки? И можно ли сохранять файлы изображений в какие-то общедоступные всем каталоги? Скажем, есть ли в системе Android что-то наподобие "Мои Документы" или "Галерея"? Заранее спасибо, и извините за слишком примитивные вопросы.

1 ответ 1

5

По поводу вашего вопроса - ответ: StackOverflow И дарю метод сохранения картинки в галерею:

private String saveImageToMediaStore(Bitmap source, String title, String desc){
    return MediaStore.Images.Media.insertImage(getContentResolver(), source,title, desc);
}
4
  • Спасибо за ответ. Выходит, что ваш метод, либо указания по ссылке на StackOverflow, сохраняют Bitmap (то есть графический объект изначально полученный из какого-то изображения) в файл. А как сохранить все отрисованное на Canvas'е? Я имею в виду, все то, что было отрисовано методами drawRect, drawPath, drawArc и т.д. Ну или, хотя бы как все, что я рисую подобными методами преобразовать в Bitmap?
    – zugzug
    15 авг 2011 в 14:17
  • По идеи, Вы ведь этими методами рисуете на канве(на текущем объекте Canvas), вот и имеется ввиду, что нужно сохранить текущий объект Canvas в файл. Прочтите ответ на тот вопрос по ссылке и попробуйте подстроить его под свой вариант. А далее, мой метод просто сохранит ваш битмэп в галерею.
    – DroidAlex
    15 авг 2011 в 14:22
  • Хорошо, спасибо. Дальше попробую сам. Единственный вопрос: последний параметр desc в вашем методе. За что он отвечает. Интуиция меня покинула.
    – zugzug
    15 авг 2011 в 14:25
  • 1
    Пожалуйста. Пробуйте. В Андроиде только так и нужно. desc - необязательный параметр. Служит описанием вставляемой картинки в галерею. Я передавал пустую строку и работало отлично.
    – DroidAlex
    15 авг 2011 в 14:27

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.