У меня есть список предметов с пользовательским фоном. Фон представляет собой простую форму с закругленным вырезом, заполненным белым цветом. Поэтому мой взгляд похож на Карту. Я могу установить возвышение на нем, и он работает. Под ним тень.Высота над уровнем моря с прозрачным фоном
Но я хочу его оптимизировать. Фон моего окна белый, поэтому я подумал, что я могу удалить цвет фона View, чтобы уменьшить перерасход. Но это не так просто. Как только я установил цвет прозрачным в фоновом режиме моего представления, высота перестанет работать, и тень больше не рисуется. Я попытался использовать штрих, а не сплошной цвет внутри выведенного мной вида bakcground, но он тоже не работает. Вероятно, это из-за ViewOutline
. Таким образом, я создал пользовательский OutlineProvider
, который возвращает что-то вроде этого:
outline.drawRoundRect(0,0,view.getWidth(), view.getHeight(), someRadius);
Теперь мой View
имеет прозрачный фон и тень тоже видно, но есть что-то не так с ним. Это выглядит не очень хорошо. В верхней части View
есть вид фона, видимый под ним. Ниже приведена фотография моего вывода. Слева - это вид с прозрачным фоном и пользовательский OutlineProvider. Справа - вид с непрозрачным белым фоном.
Является ли это ошибка? Или есть другой способ добиться этого? Похоже, что это очень простая оптимизация производительности, но оказывается, что это намного сложнее, чем должно быть.
если я должен задать вам нужна альтернатива или сделать ваш работать? – Elltz
Опубликуйте несколько фотографий о том, какой результат вы получите :) Кроме того, если у вас нет проблем с производительностью, может быть идея не оптимизировать. Трудно догадаться, какие части программы нуждаются в оптимизации без проведения измерений, могут быть другие более крупные шейки бутылки, которые легче исправить, и может случиться так, что это изменение приобретает столько же силы или больше. – JohanShogun
@ Elltz это не имеет значения. Просто хочу иметь карту с прозрачным фоном и тенью. –