- Графика
- Класс Color
- Класс Paint
- Использование полупрозрачности
- Режим Xfermode
- Сглаживание
- Класс Path
- Класс Canvas
- Класс Bitmap
- Как сделать фон 20% прозрачным на Android
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Шестнадцатеричные значения непрозрачности
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Файл activity_main.xml
- Файл MainActivity.java
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
- Установить прозрачный фон imageview на Android
- 22 ответов
- Примечание
- код непрозрачность:
- Значения Непрозрачности Hex
- Установите прозрачный фон изображения на Android
- Заметка
- Код непрозрачности:
- Значения непрозрачности шестнадцатеричных
Графика
Пакет android.graphics имеет все необходимые библиотеки для работы с двухмерной графикой. Существует несколько подходов для рисования графики.
Для рисования простой графики, которая не будет динамически изменяться во время работы приложения, обычно используют класс, наследующий от View и задействуют метод onDraw().
В метод передаётся объект Canvas, у которого есть различные графические методы.
Стандартная реализация подобного подхода выглядит следующим образом:
В методе setContentView() вместо ссылки на разметку передаётся класс MyView, наследующий от View:
В методе onDraw() можете рисовать:
Для рисования динамической графики больше подойдёт класс SurfaceView, имеющий дополнительные возможности. Данному классу мы посвятим отдельный материал.
Класс Color
Класс Color отвечает за цвета. Цвета можно описывать четырьмя числами в формате ARGB, по одному для каждого канала(Alpha, Red, Green, Blue).
Класс Paint
Класс Paint содержит стили, цвета и другую графическую информацию для рисования графических объектов. Он позволяет выбирать способ отображения графических примитивов, которые вы рисуете на объекте Canvas с помощью методов. Изменяя объект Paint, можно контролировать цвет, стиль, шрифт и специальные эффекты, используемые при рисовании. Например, чтобы установить сплошной цвет для рисования линии, нужно вызвать метод Paint.setColor().
В этом примере мы использовали готовую константу. Также можно указать 32-битное целое число, закодированное в схеме ARGB8888.
Можно установить цвет через его составляющие:
Стиль объекта Paint, задаваемый с помощью метода setStyle(), позволяет рисовать либо очертания графического примитива (STROKE), либо его заливку (FILL), либо и то, и другое сразу (STROKE_AND_FILL).
Помимо этих простых методов класс Paint поддерживает прозрачность и может быть изменён с помощью различных шейдеров, фильтров и эффектов, которые предоставляют богатый набор сложных красок и кистей.
Использование полупрозрачности
Любой цвет в Android содержит свойство прозрачности (альфа-канал). Указать его можно при создании описывающей цвет переменной, используя методы argb() и parseColor():
Но мы можем задать прозрачность уже существующего объекта Paint с помощью метода setAlpha():
Пример использования метода setAlpha() для наложения двух картинок.
Режим Xfermode
Изменение режима Xfermode для объекта Paint влияет на способ наложения новых цветов поверх уже нарисованных. В обычных обстоятельствах при рисовании поверх имеющегося рисунка создастся новый верхний слой. Если новый объект Paint на 100% непрозрачный, он полностью закрасит все, что находится под областью для рисования; если он полупрозрачный, то только затенит лежащие ниже цвета. Подклассы Xfermode позволяют изменить такое поведение.
- AvoidXfermode. Определяет цвет, поверх которого объект Paint не может (или наоборот — может только поверх него) рисовать. Задается также параметр tolerance, указывающий на допустимое отклонение.
- PixelXorXfermode. Применяет простое побитовое исключение (XOR) при рисовании поверх существующих цветов.
- PorterDuffXfermode. Мощный режим, с помощью которого можно использовать любое из шестнадцати правил смешивания изображений Портера-Даффа, управляя процессом наложения кисти на уже существующий рисунок.
Для того чтобы применить один из этих режимов, используйте метод setXferMode():
Сглаживание
При создании нового объекта Paint вы можете передать в его конструктор несколько флагов, которые будут влиять на способ отображения. Одним из наиболее интересных из них считается флаг ANTI_ALIAS_FLAG, обеспечивающий сглаживание диагональных линий, рисуемых объектом Paint (снижая при этом производительность).
Сглаживание играет важную роль в процессе отрисовки текста, значительно упрощает его восприятие. Чтобы сделать текст более гладким, можете использовать флаг SUBPIXEL_TEXT_FLAG, который применяет субпиксельное сглаживание. Можно задать оба этих флага программно, используя методы setSubpixelText() и setAntiAlias():
Класс Path
Класс Path позволяет рисовать контуры разных типов — пунктиры, сглаживание линий и т.д.
Класс Canvas
Класс Canvas представляет собой специальную поверхность (холст), на которой вы можете рисовать. С помощью многочисленных методов класса вы можете рисовать линии, окружности, дуги и так далее.
Класс Bitmap
Класс Bitmap отвечает за растровые картинки.
Источник
Как сделать фон 20% прозрачным на Android
Как сделать фон Textview около 20% прозрачным (не полностью прозрачным), где есть цвет в фоновом режиме (то есть белый)?
ОТВЕТЫ
Ответ 1
Сделайте цвет 80% в альфа-канале. Например, для красного использования #CCFF0000 :
В этом примере CC представляет собой шестнадцатеричное число для 255 * 0.8 = 204 . Обратите внимание, что первые два шестнадцатеричных цифры для альфа-канала. Формат #AARRGGBB , где AA — альфа-канал, RR — красный канал, GG — зеленый канал, а BB — синий канал.
Я предполагаю, что прозрачность 20% означает 80% непрозрачность. Если вы имели в виду другой путь, вместо CC используйте 33 , который является шестнадцатеричным для 255 * 0.2 = 51 .
Чтобы рассчитать правильное значение для значения альфа-прозрачности, вы можете выполнить следующую процедуру:
- Учитывая процент прозрачности, например 20%, вы знаете, что непрозрачное процентное значение составляет 80% (это 100-20=80 )
- Диапазон для альфа-канала — 8 бит ( 2^8=256 ), то есть диапазон от 0 до 255.
- Задайте непрозрачный процент в альфа-диапазоне, то есть умножьте диапазон (255) на процент. В этом примере 255 * 0.8 = 204 . При необходимости округлите до ближайшего целого числа.
- Преобразуйте значение, полученное в 3., которое находится в базе 10, в шестнадцатеричное (основание 16). Вы можете использовать Google для этого или любого калькулятора. Используя Google, введите «204 в hexa», и он даст вам шестнадцатеричное значение. В этом случае это 0xCC .
- Подготовьте значение, полученное в 4., к желаемому цвету. Например, для красного, который есть FF0000 , у вас будет CCFF0000 .
Ответ 2
Используйте код ниже для черного:
Теперь, если я хочу использовать непрозрачность, вы можете использовать следующий код:
Шестнадцатеричные значения непрозрачности
Если вы всегда забываете, какой код для прозрачности, тогда вы должны увидеть ссылку ниже и не беспокоиться о том, чтобы вспомнить что-нибудь о прозрачном коде: —
Ответ 3
Вы можете управлять непрозрачностью цвета, изменяя первые 2 символа в определении цвета:
# 99 000000
Ответ 4
Используйте цвет с альфа-значением, например #33—— , и установите его как фон вашего editText, используя атрибут XML android:background=» » .
- 0% (прозрачный) → # 00 в шестнадцатеричном
- 20% → # 33
- 50% → # 80
- 75% → # C0
- 100% (непрозрачный) → #FF
255 * 0.2 = 51 → в шестнадцатеричном формате 33
Ответ 5
Вы можете попробовать сделать что-то вроде:
Здесь вы можете установить непрозрачность между 0 (полностью прозрачным) до 255 (полностью непрозрачный). 51 — это именно то, что вам нужно.
Ответ 6
В Android Studio есть встроенный инструмент для настройки значения цвета и альфа/непрозрачности:
Ответ 7
Я взял три взгляда. В первом виде я установил полный (без альфа) цвет, во втором — половинный (0,5 альфа) цвет, а в третьем — светлый (0,2 альфа).
Вы можете установить любой цвет и получить цвет с помощью альфы, используя следующий код:
Файл activity_main.xml
Файл MainActivity.java
Котлин версия:
Готово
Ответ 8
Все шестнадцатеричные значения от 100% до 0% альфа. Вы можете установить любой цвет с альфа-значениями, указанными ниже. например #FAFFFFFF (ARRGGBB)
Ответ 9
Существует значение XML alpha , которое принимает двойные значения.
Так как API 11+ диапазон от 0f до 1f (включительно), 0f прозрачен и 1f непрозрачен:
android:alpha=»0.0″ thats invisible
android:alpha=»1.0″ полная видимость
Как это работает.
Ответ 10
Таким же образом мы можем сделать прозрачным.
Код белого цвета — FFFFFF
70% белый — # B3 FFFFFF.
100% — FF, 95% — F2, 90% — E6, 85% — D9, 80% — CC, 75% — BF, 70% — B3, 65% — A6, 60% — 99, 55% — 8C, 50% — 80, 45% — 73, 40% — 66, 35% — 59, 30% — 4D, 25% — 40, 20% — 33, 15% — 26, 10% — 1A, 5% — 0D, 0% — 00
Ответ 11
Альфа варьируется от 0 (прозрачный) и 1 (непрозрачный) в Android API 11 +
Ответ 12
Теперь Android Studio 3.3 и более поздняя версия предоставляют встроенную функцию для изменения альфа- значения цвета,
Просто нажмите на цвет в редакторе студии Android и укажите альфа-значение в percentage .
Для получения дополнительной информации см. Изображение ниже
Ответ 13
См. популярность ниже textView, используя это
XML
Динамически
btn.getBackground() SetAlpha (128).//50% прозрачный
tv_name.getBackground() SetAlpha (128).//50% прозрачный
Android: альфа = «0,38»
Ответ 14
Здесь программное решение от @Aromero отвечает, чтобы вычислить шестнадцатеричное значение для альфа-канала.:)
Ответ 15
Попробуйте этот код 🙂
Это полностью прозрачный шестнадцатеричный код — «# 00000000»
Ответ 16
В Kotlin вы можете использовать альфа, как это,
Результат как на скриншотах.
Источник
Установить прозрачный фон imageview на Android
Я использую веб-представление, в котором я добавляю представление изображения. Как я могу установить фон этого изображения на прозрачную?
Я попытался это:
здесь trans → #00000000 .
22 ответов
в вашем XML установите Background атрибут любого цвета, White(#FFFFFF) тени или Black(#000000) тени. Если вы хотите прозрачности, просто поместите 80 перед фактическим хэш-кодом:
это изменит любой цвет, который вы хотите, чтобы прозрачный.. 🙂
вы можете установить прозрачный фон любого макета, любого представления или любого компонента, добавив этот код в XML:
В дополнение к тому, что Harshad упомянул:
два шестнадцатеричных символа могут быть добавлены к любому шестнадцатеричному цветовому коду. Первые два символа в 8-значном шестнадцатеричном цветовом коде представляют его непрозрачность в Android.
два шестнадцатеричных символа могут варьироваться от 00 до FF. Например,
- обычный непрозрачный черный hex — «#000000»
- полностью прозрачный — «#00000000»
- полностью непрозрачный «#FF000000»
- 50% прозрачный — «#7F000000»
таким образом, вы можете изменить любой цвет на любой уровень прозрачности.
чтобы найти шестнадцатеричный префикс из процента:
разделить число процентов на 100 и умножить на 255, чтобы получить десятичное значение. Преобразуйте десятичное число в шестнадцатеричное здесь.
например, для 50%, 50/100 * 255 = 127. Используя ссылку, мы получаем шестнадцатеричное значение 7F.
если вы хотите добавить прозрачность 20% или 30%, вы должны предварительно добавить еще два символа в шестнадцатеричный код, например CC.
Примечание
android:background=»#CCFF0088″ в XML
где CC-Альфа-значение, FF-красный фактор, 00-Зеленый фактор, а 88-синий фактор.
код непрозрачность:
Значения Непрозрачности Hex
вы также можете установить прозрачность программно как:
установить прозрачность между 0 (полностью прозрачный) до 255 (полностью непрозрачный). 127,5-это ровно 50%.
вы можете создать любой уровень прозрачности, используя данную формулу. Если вы хотите половину прозрачной:
и для прозрачности 25%:
используйте приведенный ниже код для черного:
теперь, если вы хотите использовать непрозрачность, вы можете использовать следующий код:
Источник
Установите прозрачный фон изображения на Android
Я использую веб-представление, в котором я добавляю представление изображения. Как настроить прозрачность фона этого изображения?
Где trans → #00000000 .
В вашем XML установите атрибут Background на любой цвет, White(#FFFFFF) оттенок или Black(#000000) оттенок. Если вы хотите прозрачность, просто поставьте 80 до фактического хеш-кода:
Это изменит любой цвет, который вы хотите на прозрачный. 🙂
Вы можете установить прозрачный фон любого макета, любого представления или любого компонента, добавив этот код в XML:
В дополнение к тому, что сказал Харшад:
Два шестнадцатеричных символа могут быть добавлены к любому шестнадцатеричному цветовому коду. Первые два символа в 8-значном шестнадцатеричном цветовом коде представляют его непрозрачность в Android.
Два шестнадцатеричных символа могут варьироваться от 00 до FF. Например,
- Нормальный непрозрачный черный гекс – «# 000000»
- Полностью прозрачный – «# 00000000»
- Полностью непрозрачный – «# FF000000»
- 50% прозрачный – «# 7F000000»
Таким образом, вы можете изменить любой цвет на любой уровень прозрачности.
Чтобы найти шестнадцатеричный префикс из процента:
Разделите процентное число на 100 и умножьте на 255, чтобы получить десятичное значение. Преобразуйте десятичное число в шестнадцатеричное число.
Например, для 50%, 50/100 * 255 = 127. Используя ссылку, мы получим шестнадцатеричное значение 7F.
Источник: Android: как создать прозрачный или непрозрачный фон
Если вы хотите добавить прозрачность 20% или 30%, вы должны предварительно отложить еще два символа в шестнадцатеричном коде, таком как CC.
Заметка
android:background=»#CCFF0088″ в формате XML
Где CC – значение альфа, FF – красный коэффициент, 00 – зеленый фактор, а 88 – синий фактор.
Код непрозрачности:
Значения непрозрачности шестнадцатеричных
Вы также можете установить непрозрачность программно, например:
Установите непрозрачность между 0 (полностью прозрачным) до 255 (полностью непрозрачным). 127,5 составляет ровно 50%.
Вы можете создать любой уровень прозрачности с использованием данной формулы. Если вы хотите половину прозрачности:
И для прозрачности 25%:
Существует уже предопределенная константа. Используйте Color.TRANSPARENT .
Но я думаю, что вы можете сделать фон изображения, которое вы размещаете в прозрачном WebView, например, с прозрачным PNG, а не с фоном ImageView. Если фактическое изображение совсем не просматривается, то фон ImageView не может быть просмотрен через него.
Используйте нижеприведенный код для черного:
Теперь, если вы хотите использовать непрозрачность, вы можете использовать приведенный ниже код:
Источник