Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [...] [Android] Как получить ссылку на сохраненное изображение? (http://www.flasher.ru/forum/showthread.php?t=174194)

Astraport 19.01.2012 17:08

[Android] Как получить ссылку на сохраненное изображение?
 
Удивительные вещи - нет нигде инфы. Создаю камера ролл и сохраняю созданное изображение. Но как потом получить на него ссылку, чтобы допустим расшарить? Пробовал как-нибудь подключить MediaPromise - безрезультатно.

Код AS3:

cr = new CameraRoll();
                                cr.addEventListener(MediaEvent.COMPLETE, onComplite);
                                cr.addBitmapData(bitmapData);
 
protected function onComplite(event:MediaEvent):void
                        {
                                infoText.text += String ("onComplite");
                                var mp:MediaPromise = event.data;
                                if (mp.file == null){
                                        infoText.text += String ("null");
                                } else {
                                        infoText.text += String (mp.relativePath + "+++" + mp.file.nativePath);
                                }
                        }

onComplite вообще не вызывается.

Wolf 19.01.2012 18:11

если он не вызывается значить что тоо не так. вы уверены что оно сохраняется?

Astraport 19.01.2012 18:20

Цитата:

вы уверены что оно сохраняется?
Конечно. В галерее появляется моя картинка.
Все работает, если юзать browseForImage, но мне этого не нужно. Мне нужно создать новое изображение (например сделать коллаж из разных элементов), сохранить его в Camera Roll и сразу получить ссылку на изображение чтобы расшарить.

Если делать cr.addEventListener(Event.COMPLETE, onComplite); то обработчик вызывается, но мне нужен именно MediaEvent чтобы передать данные MediaPromise.

Если знаете как по другому решить задачу, то посоветуйте пожалуйста.

Можно, конечно, сохранять изображение как файл на устройстве, соответственно ссылка на файл будет, и потом уже предлагать юзеру что с этим файлом делать: сохранить в галерее, расшарить или то и другое. Но мне пока важно понять почему не работает именно предложенный вариант.

Wolf 20.01.2012 17:41

попробуй MediaEvent.INIT

Astraport 21.01.2012 01:11

Попробую, но я уже нашел другое решение по подсказке с адобовского форума.
Решение корявое, но работает. Добавляем картинку в CameraRoll а потом ищем там последний добавленный файл и сохраняем его путь.

Код AS3:

protected function saveCameraRoll(event:MouseEvent):void{
  var cr:CameraRoll = new CameraRoll();
                                        cr.addEventListener(Event.COMPLETE, onComplite);
                                        cr.addBitmapData(bitmapData);
                              }
                              protected function onComplite(event:Event):void
                              {
                                        var cDir:String = File.documentsDirectory.resolvePath("DCIM/Camera/").nativePath;
                                        var cameraDir:File = new File(cDir);
                                      var files:Array = new Array();
                                        files = cameraDir.getDirectoryListing();
                                        files.sortOn("creationDate", Array.NUMERIC); // sorting array
                                        var newFile:File = new File();
                                        newFile = files[files.length-1] as File;
 
                                        var newPhoto:Object = new Object();
                                        newPhoto.fileName = newFile.name;
                                        newPhoto.url = newFile.url;
 
                                        navigator.pushView(views.ShareImageView, newPhoto);
                              }



Часовой пояс GMT +4, время: 23:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.