-
Постов
1 204 -
Зарегистрирован
-
Посещение
-
Победитель дней
26
Активность репутации
-
Rusland отреагировална galex в [Статья] Как конвертировать растровую картинку в векторный TPath Firemonkey. How to convert a bitmap image (png, jpeg, bmp) into a Firemonkey vector TPath.
https://quality.embarcadero.com/browse/RSP-17890
-
Rusland отреагировална galex в [Статья] Как конвертировать растровую картинку в векторный TPath Firemonkey. How to convert a bitmap image (png, jpeg, bmp) into a Firemonkey vector TPath.
Попробовал поработать с TPath. К сожалению он некорректно обрабатывает (точнее не обрабатывает) квадратичные кривые Безье. Ошибка как в Berlin'е так и в Tokyo:
procedure TPathData.SetPathString(const Value: string); ...... 'Q', 'q': begin GetPointFromString(PathString, Pos); GetPointFromString(PathString, Pos); end; ..... Вроде как должно быть:
procedure TPathData.SetPathString(const Value: string); ...... 'Q', 'q': begin QuadCurveTo(GetPointFromString(PathString, Pos), GetPointFromString(PathString, Pos)); end;
Задумался: Отправлять Bugreport или нет?
-
Rusland отреагировална Равиль Зарипов (ZuBy) в [Android] Доступ из программы к папкам res\
TAndroidHelper.Context.getResources().getIdentifier( StringToJString('название картинки без расширения'), StringToJString('drawable'), TAndroidHelper.Context.getPackageName); Чтобы картинки отображались согласно скейлу девайса, нужно чтобы они были во всех вариациях
ldpi; mdpi; hdpi; xhdpi и тд... Ну и деплоить их правильно!
-
Rusland отреагировална Евгений Корепов в ListView в Берлине и в Токио
Вот так сделайте:
procedure TForm1.LsvObjectsUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var ... oConnectImage: TListItemImage; r: integer; begin r:=Random(ImageList1.Count); oConnectImage:=aItem.Objects.FindDrawable('ConnectImage') as TListItemImage; if (oConnectImage<>nil) then begin oConnectImage.OwnsBitmap:=True; oConnectImage.ImageIndex:=r; end; ... end; Добавьте строчку oConnectImage.OwnsBitmap:=True. В соседней теме я долго бился над этим.
-
Rusland отреагировална Евгений Корепов в ListView в Берлине и в Токио
Попробуйте избавится от ImageList на время тестов, замените на TArray<TBitmap> к примеру. Так же попробуйте после oConnectImage.ImageIndex:=r; делать oConnectImage.Bitmap.SaveToFile('d:\0\'+Автоинкремент+'.jpg'). У меня в подобной ситуации несколько процентов картинок в папке 'd:\0\' были черными, видимо пустые, отказался по этой причине от связки ImageList и ListView.
-
Rusland отреагировална Fedor K в TNotificationCenter. Можно ли изменить иконку?
Чтобы не лезть в исходники, можно сделать так для Android:
1. В Deployment : добавляешь нужную картинку X.png и устанавливаешь у картинки "Remote Path" "res\drawable\";
2. В коде перед созданием уведомления добавляешь:
const IMAGE = 'drawable/X'; //расширение картинки не указывается var lId : Integer; begin lId := TAndroidHelper.Context.getResources().getIdentifier( StringToJString(IMAGE), StringToJString('drawable'), TAndroidHelper.Context.getPackageName); TAndroidHelper.Context.getApplicationInfo.icon := lId; //именно отсюда потом берется Id картинки для локального уведомления *Проверял на Android 4.4, в более поздних версиях могут быть различия, версия IDE = Delphi 10 Seattle.
**В прошивках типа MIUI код выше может не работать из-за жестокого кеширования.
-
Rusland отреагировална AngryOwl в TMultiView. Плавность перемещения
Я поступил проще - на Токио пока даже и не пробовал переходить... Берлин работает, как работает - устраивает. Пока Токио не допилят, пока об этом все не напишут, и пока не появится как минимум первый апдейт - даже и пробовать не буду.
Политика Embarcadero мне понятна. Искренне надеюсь, что им хватит ума и бюджета на то, чтобы развивать продукт. Оставался и остаюсь приверженцем Delphi, и во многих случаях ему просто нет объективной замены/альтернативы. Но кидаться "в омут" (на каждую новую версию) - желания нет.
-
Rusland отреагировална Ufomaster в Зависание приложения при удалении текста в TEdit
Переход на NDK r14b - решил вопрос.
-
Rusland отреагировална Pax Beach в Seattle Android Ошибка exited with code 1
Создание Android приложений с NDK R13
Не мог смириться с суевериями ), и решил сам проверить. Delphi не дружит с линкером (компоновщиком) версии 4.9, а с 4.8 дружит нормально.
Все остальное на вкладке NDK использую из последнего релиза.
С сегодняшнего дня, я живу вот так:
PS: Интересно, если компоновщик брать из каталога другой архитектуры, приложения заработают корректно на устройствах с Intel?
-
Rusland получил реакцию от dnekrasov в Снимок экрана в полноэкранном приложении DirectX
Класс для снятия скриншотов не подойдет?
-
Rusland отреагировална Евгений Корепов в ListView с картинкой - не работает под Android
Блин! У меня нет слов! Проблема решилась многочасовым гугленьем. Самое смешное - решение нашел на этом форуме в сообщении http://fire-monkey.ru/topic/3014-ne-otobrazhaetsya-tlistitemimage/?do=findComment&comment=18113 , спасибо огромное @DimArt за решение!
Вся проблема была в недокументированном свойстве OwnsBitmap, достаточно после загрузки изображения в ListItemImage.Bitmap добавить строчку ListItemImage.OwnsBitmap:=True; И все начинает отлично работать под Android.
Документация ембаркадеро говорит нам о этом свойстве следущее "Embarcadero Technologies does not currently have any additional information." (http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.ListView.Types.TListItemImage.OwnsBitmap). Б*%дь, ну как так то? У меня одни маты, два дня просраны вхолостую...
Итоговый, работоспособный код функции SetupImageObject ниже
function SetupImageObject(const AName : String; AWidth, AHeight, X , Y : Single; AAlign, AVertAlign: TListItemAlign) : TListItemImage; Var AImageURL : String; begin Result:=TListItemImage(AItem.View.FindDrawable(AName)); if Result=Nil then begin Result:=TListItemImage.Create(AItem); AImageURL:=AItem.Data['ImageURL'].AsString; Result.Bitmap:=LoadImageFromURL(AImageURL); Result.OwnsBitmap:=True; end; Result.Name:=AName; Result.Width:=AWidth; Result.Height:=AHeight; Result.PlaceOffset.X:=X; Result.PlaceOffset.Y:=Y; Result.Align:=AAlign; Result.VertAlign:=AVertAlign; Result.ScalingMode:=TImageScalingMode.StretchWithAspect; end;
-
Rusland отреагировална Евгений Корепов в Delphi Tokyo сломали Text в Android
Создал запрос https://quality.embarcadero.com/browse/RSP-17813 , проголосуйте кому не лень. Спасибо.
-
Rusland отреагировална Andrey Efimov в Большой список неподдерживаемых устройств в Google Play
Побуду в роли кэп'а ещё немного...
Кто-то плохо изучил матчасть :http://docwiki.embarcadero.com/RADStudio/Berlin/en/Preparing_an_Android_Application_for_Deployment#Customizing_Your_AndroidManifest.xml_File (Ваш кэп)
Вот вам данные по приложению, которое не требует ни одного разрешения но запиленное под версию Андроида 4.1 или более поздняя:
Поддерживаемые устройства: 12439 Неподдерживаемые устройства: 2752
Проверяйте манифест, возможно там что-то лишнее есть... Сделайте Clean проекта и проверьте, как будут обстоять дела со списком устройств на маркете. Попробуйте запостить пустое приложение и посмотрите как там обстоят дела.
Наблюдал в своих проектах и экспериментах, чем больше особенных разрешений (типа "связь", "GPS" и т.п.) требуется, тем меньше будет поддерживаемых устройств, что вполне логично...
Но с необъяснимым ростом неподдерживаемых устройств не сталкивался. Нельзя исключать и глюк в Гугл плее.
АП. Нашёл ссылку, которую хотел изначально дать: https://developer.android.com/google/play/filters.html?hl=ru
p.s. Удачи в поисках проблемы
-
Rusland получил реакцию от Равиль Зарипов (ZuBy) в Снимок экрана в полноэкранном приложении DirectX
Класс для снятия скриншотов не подойдет?
-
Rusland отреагировална Kitty в Отправка пуша из консоли firebase
Спасибо получилось.
Для таких не умных как я, которые не понимают, что в консоли FCM надо писать самой:
1. Откройте дополнительные параметры в консоли FCM .
2. В первом поле КЛЮЧ принудительно самостоятельно напечатайте "mеssage" без ошибок в первом поле. В поле напротив напишите текст сообщения.
3. При этом появиться дополнительные поля ввода ниже.
4. В первом новом поле ниже напишите принудительно title без ошибок и напротив в значении ваш текст...
-
Rusland отреагировална Равиль Зарипов (ZuBy) в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]
Добавил тестовый проект и серверную часть, статью по ссылке обновил
https://github.com/rzaripov1990/PUSHTestFCM
-
Rusland отреагировална dante333 в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]
При отправке пуша из консоли kinvey,API Calls (обращение к API сервиса) не защитывается,что правильно,ведь запроса от пользователя мы не получаем.То есть,теоретически,вы имеете "безлимитку" на пуши. Все таки Kinvey это не совсем "про пуши",сервис имеет гораздо больше функций и применений,а пуши это можно сказать бонус.Если пользоваться чисто пушами,то единственный запрос от пользователя будет приходить при первом запуске приложения,для получения пары ID/токен.Так что вариант с Kinvey,особенно при небольшом количестве пользователей,имеет право на существование).Но и тут не все так гладко.Kitty в соседней теме описала про дублирование уведомлений.
-
Rusland получил реакцию от Pax Beach в Снимок экрана в полноэкранном приложении DirectX
Класс для снятия скриншотов не подойдет?
-
Rusland отреагировална denprox в TPath - нарисовать путь для объекта
Пришлось набирать весь код по видео. Если кому будет полезно, вот исходник
PathAnim2.rar
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Скриншот с WebBrowser (WebBrowser1.MakeScreenshot)
Замените код на такой
procedure TForm1.WebBrowser1DidStartLoad(ASender: TObject); var aThread: TThread; begin aThread := TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(nil, procedure begin If CheckBox1.IsChecked Then Image1.Bitmap := WebBrowser1.MakeScreenshot; end) end); aThread.FreeOnTerminate := true; aThread.Start; end; -
Rusland отреагировална Andrey Efimov в Большой список неподдерживаемых устройств в Google Play
тыц: Как просмотреть и изменить список совместимых устройств, там смотрите, что написано в "Дополнительная информация".
и ещё полезно будет Device Compatibility
Если кратко, то проверяйте манифест.
-
Rusland отреагировална Andrey Efimov в [Статья] Добавляем метод onRequestPermissionsResult в приложение
Пожалуйста
-
Rusland отреагировална Andrey Efimov в [Статья] Добавляем метод onRequestPermissionsResult в приложение
Ссылка: http://delphifmandroid.blogspot.ru/2017/04/onrequestpermissionsresult.html
Автор: Андрей Ефимов
Описание:
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Отсылка на пользователя
Доброго времени суток уважаемые пользователи форума!
Часто в постах Вы делаете отсылку(упоминание) на пользователя, но как правило делается это не правильно.
Я записал небольшое видео, которое поможет сделать это правильно
При упоминании пользователя, он получает уведомление (даже если он не подписан на эту тему) и сможет быстрее ответить на вопрос
Удачи!
-
Rusland отреагировална Равиль Зарипов (ZuBy) в [Заметка] Устанавливаем тему для нативных диалогов в Android
Ссылка: http://blog.rzaripov.kz/2017/04/android.html
Автор: @Равиль Зарипов (ZuBy)
Описание: Устанавливаем тему для нативных диалогов в Android