#android #svg #path #assets
Почему происходит размытие элемента path в то время как rectangle и circle без размытия? Я нашёл решение в виде отключения аппаратного ускорения (заменой на программное), но мне хотелось бы оставить аппаратное ускорение для данного View и избавиться от размытия. android:layerType="hardware" // аппаратное android:layerType="software" // программное В gradle важная строчка указана android { defaultConfig { vectorDrawables.useSupportLibrary = true } } Вот код загрузки изображения SVG формата из Assets. // https://github.com/Pixplicity/sharp Sharp sharp = Sharp.loadAsset(getAssets(), "drawing.svg"); Drawable drawable = sharp.getDrawable(); view = findViewById(R.id.photo_view); //ImageView view.setImageDrawable(drawable); Прошу не предлагать импорт Vector asset в Drawable ресурсы. Мне это не подходит. В моём приложении планируется сотня небольших векторных изображений, которые я планирую размещать в папке assets. Проблема одинаково выглядит как на эмуляторе так и на реальных устройствах. android:layerType="hardware" // аппаратное android:layerType="software" // программное
Ответы
Ответ 1
Несколько дней мучился меняя библиотеки для работы с SVG. Но как это обычно бывает, ответ на собственный вопрос находится сразу же после того как задашь вопрос на стэковерфлоу ) Для назначения изображения нужно было использовать метод into(): view = findViewById(R.id.photo_view); //ImageView Sharp.loadAsset(getAssets(), "drawing.svg") .into(view); Всем спасибо! Надеюсь этот вопрос поможет кому нибудь в будущем ) Размытие исчезло во всех режимах android:layerType. P.S. Всё равно загадка остаётся неразгаданной, откуда берётся размытие и почему оно возникает только на path элементах svg файлаОтвет 2
Для path даже при android:layerType="hardware" все линии сначала будут переведены с помощью CPU в растовое изображение, и только потом оно передается в GPU. И если после этого, изображению будет необходимо масштабирование, у path будет растягиваться/сжиматься растр, в отличии от примитивных фигур. Вот line например будет рисоваться нормально.
Комментариев нет:
Отправить комментарий