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

Иконка приложения


OnePeople

Вопрос

Rad Studio 10.3.3

Android 64bit

Делаю загрузку списка приложений, всё работает на телефоне, как только запускаю на целевом устройстве (андроид магнитола), то падает на этой строке

 Bitmap := TJBitmapDrawable.Wrap((Drawable as ILocalObject).GetObjectID).getBitmap;

причем только на некоторых приложениях, например у меня идет календарь, всё нормально иконка добавляется, затем chrome падает на этой строке, затем email тоже нормально отрабатывает функция

КАК ТАК ТО

Уже все перепробывал, может кто знает другой метод получения иконки приложения, пользуюсь этим

   Drawable := LApplicationInfo.loadIcon(TAndroidHelper.Context.getPackageManager);
                      if Assigned(Drawable)  then
                      Bitmap := TJBitmapDrawable.Wrap((Drawable as ILocalObject).GetObjectID).getBitmap;

                   if Assigned(Bitmap) then
                    begin

                      JBitmapToSurface(Bitmap, Surface);
                      iconapp.Assign(Surface);
                    end;

 

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

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

  • 0

У нас загрузка иконки по коду который указан у Вас, перестала работать еще на 10.3.2. начиная с 28 SDK

Пришлось отключать, в лоб понять причину падения не получилось.

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

Вопрос решен, дело было в классе drawable, существует не только bitmapdrawable, но и adaptiveicon и извлекать ее нужно по своему, причем все время до сегодняшнего дня стоял костыль, а тут в другом месте, опять, при извлечении иконки стало приложение падать и как оказалось хорошо, что стало падать, решение помогло убить двух зайцев одним махом)))

Ссылка на комментарий
  • 0
В 30.09.2020 в 06:55, OnePeople сказал:

Вопрос решен, дело было в классе drawable, существует не только bitmapdrawable, но и adaptiveicon и извлекать ее нужно по своему, причем все время до сегодняшнего дня стоял костыль, а тут в другом месте, опять, при извлечении иконки стало приложение падать и как оказалось хорошо, что стало падать, решение помогло убить двух зайцев одним махом)))

Столкнулся с такой-же проблемой на delphi 10.4.1. Не мог ли бы выложить код? Только на попытке загрузить в bitmapdrawable приложение падает. 

Изменено пользователем WarWar WTTH
Ссылка на комментарий
  • 0
  procedure loadbit;
    begin
          if JStringToString(Drawable.getClass.toString) = TJBitmapDrawable.ClassName then
          begin
            if (TJBitmapDrawable.Wrap((Drawable.getCurrent as ILocalObject).GetObjectID).getBitmap<>nil)
                then
                begin
                    Bitmap := TJBitmapDrawable.Wrap((Drawable.getCurrent as ILocalObject).GetObjectID).getBitmap
                end  else Bitmap:=nil;
          end else
                begin
                        bmp:=TJBitmap.JavaClass.createBitmap(Drawable.getIntrinsicWidth, Drawable.getIntrinsicHeight, TJBitmap_Config.JavaClass.ARGB_8888);
                        Canv:= TJCanvas.JavaClass.init(bmp);
                        drawable.setBounds(0, 0, Canv.getWidth(), Canv.getHeight());
                        drawable.draw(Canv);
                        Bitmap:=bmp;
                end;
    end;

 

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

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

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

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

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

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

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

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

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

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

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