Я пытаюсь изменить цвет на изображении белого маркера по коду. Я прочитал, что код ниже должен изменить цвет, но мой маркер остается белым.
Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY )
Я что-то пропустил? Есть ли другой способ изменить цвета на моих чертежах, расположенных в моей папке res?
Ответы:
Попробуй это:
Использование
DrawableCompat
важно, поскольку оно обеспечивает обратную совместимость и исправляет ошибки на устройствах с API 22 и ранее.источник
OverlayItems
классом hello mapview, который может вызвать проблему? Его можно вытащить из моей папки res, ничего особенного ...Вы можете попробовать это для svg vector drawable
источник
null
кDrawable#setTintList(ColorStateList)
Возможно, вам придется вызвать mutate () для рисования, иначе это повлияет на все значки.
источник
Другой способ сделать это на Lollipop, android 5. + - установить оттенок растрового изображения, которое можно рисовать, например:
Это сработает для вас, если у вас есть ограниченное количество цветов, которые вы хотите использовать в своих чертежах. Прочтите мой блог для получения дополнительной информации .
источник
minSdkVersion 16
устройством Android 4.1.1.)android:background="..."
. Довольно странно!Вы можете попробовать это для
ImageView
. используяsetColorFilter()
.источник
Я написал общую функцию, в которой вы можете передать контекст, значок - это значок изображения id / mipmap и новый цвет, который вам нужен для этого значка.
Эта функция возвращает drawable.
источник
Вы можете попробовать ColorMatrixColorFilter, так как ваш ключевой цвет белый:
источник
Это сработало для меня. Не забудьте поставить «ff» между 0x и цветовым кодом. Как это 0xff2196F3
источник
То же, что и принятый ответ, но более простой удобный метод:
Обратите внимание, код здесь - Kotlin.
источник
Вы можете попробовать
Mode.LIGHTEN
илиMode.DARKEN
. Документация Android Javadocs ужасно объясняет, что делают режимы PorterDuff. Вы можете ознакомиться с ними здесь: PorterDuff | AndroidЯ предлагаю посмотреть здесь Compositing на сайте Mozilla . (У них нет всех режимов, которые есть в Android, но у них их много)
источник
Используйте это: для java
для Котлина
вы можете использовать PorterDuff.Mode.SRC_ATOP, если ваш фон имеет закругленные углы и т. д.
источник
Синтаксис
пример
источник
Вот что я сделал:
источник
Просто используйте
в вашем XML-файле. Заменить primary_color на собственный цвет
источник
Создайте такой метод:
и используйте это так:
источник
Самый простой способ сделать это:
или
a, r, g, b: значения argb цвета.
источник
Для тех, кто использует Kotlin, простая функция расширения:
а потом просто сделай
источник