Перейти к содержанию
Fire Monkey от А до Я
  • 0

Получить фото из галереи через Intent


Dmitry Stolyarov

Вопрос

Открываю список фото в галерее с помощью:

procedure TForm1.Button1Click(Sender: TObject);
var
  chooserIntent, Intent: JIntent;
  ResultInt:integer;
begin
  intent := TJIntent.Create;
  intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT);
  intent.setType(StringToJString('image/* video/*'));
  chooserIntent := TJIntent.JavaClass.createChooser(Intent, StrToJCharSequence('Choose media file'));
  TAndroidHelper.Activity.startActivityForResult(chooserIntent, ResultInt);

end;

А как получить выбранную фотографию, например в Image1 не пойму.. Подскажите пжл...

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

TMessageResultNotification... see more FMX.InAppPurchase.Android.pas
в сообщении прилетит Intent а там по документации...
http://fire-monkey.ru/topic/3183-opendialog-для-мобильных-платформ/#comment-37609

Изменено пользователем Slym
Ссылка на комментарий
  • 0

Рабочий код:

procedure TForm1.HandleActivityMessage(const Sender: TObject;
  const M: TMessage);
var
 RequestCode, ResultCode: Integer;
 Intent: JIntent;
 uri : Jnet_Uri;
 bitmap: JBitmap;
 surface: TBitmapSurface;
begin
  if not(M is TMessageResultNotification) then exit;
  TMessageManager.DefaultManager.Unsubscribe(TMessageResultNotification, FMessageSubscriptionID);
  FMessageSubscriptionID := 0;

  RequestCode:=TMessageResultNotification(M).RequestCode;
  ResultCode:=TMessageResultNotification(M).ResultCode;
  Intent:=TMessageResultNotification(M).Value;

  if (ResultCode = TJActivity.JavaClass.RESULT_OK) and Assigned(Intent) then
   begin
    try
      uri:=Intent.getData;
      bitmap := TJImages_Media.JavaClass.getBitmap(SharedActivity.getContentResolver, uri);
      surface := TBitmapsurface.Create;
      JBitMapToSurface(bitmap,surface);
      Image1.Bitmap.Assign(surface);
    finally
        surface.Free;
    end;
  end;

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...