Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
максим2000
1 / 1 / 0
Регистрация: 26.09.2015
Сообщений: 15
#1

Сохранение изображения Android - Программирование Android

02.01.2016, 00:41. Просмотров 790. Ответов 8
Метки нет (Все метки)

Работаю на android всего неделю. Знаю Java SE. Надо получить графику ImageView и сохранить ее в Bitmap и этот Bitmap сохранить во внутренней памяти. Мог бы и Drawable извлечь, но графика вся в методе onClick. Плюс файл не хочет сохраняться. Как достичь нужного мне результата? Есть у кого идеи?
Вот сам код:
Java
1
2
3
4
5
6
7
8
9
10
Bitmap bitmap;
            File image = new File(Environment.getDataDirectory().getPath(),"image.png");
            FileOutputStream streamsave = null;
            try {
               Bitmap img = Bitmap.createBitmap(graphic.getResources().getDisplayMetrics(), graphic.getWidth(),  graphic.getHeight(), Bitmap.Config.ARGB_8888);
                streamsave = new FileOutputStream(image);
                img.compress(Bitmap.CompressFormat.PNG, 85, streamsave);
                streamsave.flush();
                streamsave.close();
            } catch (IOException e) { }catch (NullPointerException e) { }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2016, 00:41     Сохранение изображения Android
Посмотрите здесь:

Сохранение. Android Studio - Программирование Android
Здравствуйте. Пишу приложение в Android studio. Имеется кнопка "продолжить". Интересно как сделать, чтобы при нажатии на эту кнопку...

Android Загрузка изображения на стену vkontakte - Программирование Android
Здравствуйте всем, возникла необходимость загрузить фотографию на стену вконтакте. На сайте разработчиков есть статья Загрузка файлов ...

Где взять стандартные изображения Android - Программирование Android
Где-то можно взять системные изображения из последних версий Андроида? То есть не иконки как на...

android:theme="@android:style/Theme.Dialog" - Программирование Android
android:theme="@android:style/Theme.Dialog" как при таком отображение активности можно избежать затемнение( или что там с ней происходит)...

Android и С++ - Программирование Android
Всем привет! Понимаю, что подобная тема скорее всего поднималась, но шерстить 43 страницы данного раздела меня не радует, да и в поиск не...

С++ и android - Программирование Android
Привет форумчане, такая ситуация. Мой друг изучил доволи неплохо с++ , и вот натрапил на разработку под андроид и стоит перед вопросом,...

C# and Android - Программирование Android
Здравствуйте. Появилась задача - разработать приложение на шарпе под андроид. Хотелось бы узнать опыт коллег, которые делали подобное. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,603
Завершенные тесты: 1
02.01.2016, 12:05     Сохранение изображения Android #2
гадать по куску кода?
разрешения в манифесте для начала проверь
и у меня то самое чувство, когда кто-то пытается сделать непонятно что, но рассказать он не считает нужным
максим2000
1 / 1 / 0
Регистрация: 26.09.2015
Сообщений: 15
02.01.2016, 23:28  [ТС]     Сохранение изображения Android #3
Паблито, Даже не знаю, что в манифесте этому view надо прописать. Вся графа в onDraw, в канвасе, тип drawOval и прочее. Как этот canvas заполучить в Bitmap виде? Что именно нужно вам показать для ответа?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,603
Завершенные тесты: 1
03.01.2016, 16:00     Сохранение изображения Android #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
предположим view это ссылка на нужное нам вью, с которого надо сделать битмап
1. создаем в активити метод
Java
1
2
3
4
5
6
7
8
9
10
11
    private void saveAsBitmap(View view, String filename) {
        view.setDrawingCacheEnabled(true);
        Bitmap bitmap = view.getDrawingCache();
        try {
            FileOutputStream out = openFileOutput(filename, MODE_PRIVATE);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); // ставить 85 бесполезно, PNG - это формат сжатия без потерь
            out.close();
        } catch (Exception ignored) {
        }
        bitmap.recycle();
    }
если метод размещать не в акитивити, а в левом классе, то придется передавать в метод еще и ссылку на контекст что бы можно было вызвать методы openFileOutput / openFileInput

2. где-то в коде когда надо записать файл, вызываем наш метод
Java
1
                saveAsBitmap(view, "image.png");
Когда надо будет получить ссылку на файл или FileInputStream, вызываем соответственно методы
Java
1
2
3
File file = getFileStreamPath("image.png");
// или
FileInputStream inputStream = openFileInput("image.png");
максим2000
1 / 1 / 0
Регистрация: 26.09.2015
Сообщений: 15
03.01.2016, 17:53  [ТС]     Сохранение изображения Android #5
Паблито, При нажатии на кнопку, вызывающую метод, среди процессов вылетает такое

Java
1
2
3
4
5
6
7
8
9
01-03 17:44:43.395 30000-9389/? E/DatabaseUtils: Writing exception to parcel
                                                 java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
                                                     at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140)
                                                     at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
                                                     at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607)
                                                     at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
                                                     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
                                                     at android.os.Binder.execTransact(Binder.java:388)
                                                     at dalvik.system.NativeStart.run(Native Method)
Для простоты проект скину
Вложения
Тип файла: rar Архив WinRAR.rar (7.10 Мб, 4 просмотров)
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,603
Завершенные тесты: 1
04.01.2016, 12:20     Сохранение изображения Android #6
у меня на эмуляторе не выдает ничего такого, а реального устройства нет под рукой
и я тут подумал, все таки строка bitmap.recycle(); у меня там лишняя, ее лучше убрать
максим2000
1 / 1 / 0
Регистрация: 26.09.2015
Сообщений: 15
04.01.2016, 13:44  [ТС]     Сохранение изображения Android #7
Паблито, Сделал, ошибка больше не вылетает. А сам файл можно сохранить не где-то в дебрях лесных, а например в директиве галереи или вообще в видимых юзеру местах?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,603
Завершенные тесты: 1
04.01.2016, 13:59     Сохранение изображения Android #8
можно например так Не могу сохранить файл на карту
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2016, 15:06     Сохранение изображения Android
Еще ссылки по теме:

Qt 5.1.1 for Android - Программирование Android
Здравствуйте! Пытаюсь, использовать библиотеку Qt для Android, установил всё по инструкции на сайте: Android SDK, NDK, JM, Ant, ну, и сам...

Hello android - Программирование Android
Пишу, значит, вот это: package lucky.myfirstandroidapplication; import android.os.Bundle; import android.app.Activity; ...

Android - Программирование Android
пишу приложение на андроид (не давно начал изучать) как сделать в андроид приложении 1+2=? при нажатии на imagebutton(1.2.3) чтоб вместо...

Android - Программирование Android
Пишу программу первый раз(HelloWorld). Программа написана без ошибок, но Android SDK не отображает ее. Сам SDK включается но написанная...

Android с 0 - Программирование Android
Всем привет. Когда-то давно начинал изучать Андроид не зная Java(за что, конечно, поплатился), и сейчас решил вновь заняться разработкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
максим2000
1 / 1 / 0
Регистрация: 26.09.2015
Сообщений: 15
04.01.2016, 15:06  [ТС]     Сохранение изображения Android #9
Паблито, Все! Сработало. Спасибо огромное!
Yandex
Объявления
04.01.2016, 15:06     Сохранение изображения Android
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru