- Графика
- Класс 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
- Цвет фона значка запуска изображений Android Studio
Графика
Пакет 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 вы можете использовать альфа, как это,
Результат как на скриншотах.
Источник
Цвет фона значка запуска изображений Android Studio
У меня есть логотип .png для моего приложения, у которого нет фона, когда я добавляю его в студию Android в качестве объекта изображения, я вынужден иметь фон. Шестнадцатеричное поле не принимает 8-значные цветовые коды, только 6-значные. Есть ли способ сделать фон невидимым?
Чтобы сделать фон прозрачным, установите shape как None . Смотрите изображение ниже:
Для Android Studio 3.0 вы можете установить его на Legacy вкладке
Я использую, Android Studio 3.0.1 и если приведенный выше ответ не работает для вас, попробуйте изменить icon type на Legacy и выбрать Shape значение None по умолчанию Adaptive and Legacy .
Примечание. На некоторых устройствах установлена программа запуска с автоматическим добавлением белого фона в значок, это нормально.
У вас есть два пути:
1) В Background Layer> Scaling уменьшите размер до 1
а затем в Legacy> Legacy Icon установить Shape как None
2) в разделе «Фоновый слой»> «Масштабирование»> «Исходный объект» вы можете установить изображение как изображение размером 1×1 пиксель (или любого размера) transparent.png (вы уже создали).
а затем в Legacy> Legacy Icon установить Shape как None
вышеупомянутый подход не работал у меня на Android Studio 3.0. Он по-прежнему показывает фон. Я только что сделал пустой файл фона
Это сработало, за исключением слоев полного выпуска за обрез.
Это просто еще один обходной путь.
- Для «Слоя переднего плана» выберите «Тип актива» в качестве текста и удалите текст по умолчанию в текстовом поле.
- Для «Фонового слоя» выберите «Тип актива» в качестве изображения, а теперь выберите путь к изображению, которое вы хотите, в качестве значка.
И тебе хорошо идти.
Android Studio 3.5.3 Работает с этой конфигурацией.
Сначала создайте значок запуска (Adaptive and Legacy) из Image Asset:
Выберите image фоновый слой и измените его размер на 0% или 1%, а на вкладке «В устаревшей shape версии » установите значение none .
Затем удалите папку res/mipmap/ic_laucher_round в окне проекта, откройте AndroidManifest.xml и удалите атрибут android:roundIcon=»@mipmap/ic_launcher_round» из application элемента.
В конце концов удалите ic_launcher.xml из mipmap-anydpi-v26 .
Обратите внимание: некоторые устройства, такие как Nexus 5X (Android 8.1), автоматически добавляют белый фон и ничего не могут делать.
Вот шаги, которые я предпринял, чтобы сделать изображение прозрачным:
1- Я использовал онлайн-сайт, который делает изображение прозрачным, их много. Для меня я использую этот https://www241.lunapic.com/editor/?action=transparent, а иногда и http://www.online-image-editor.com/help/transparency
2- В Android Studio (я использую версию 3.1.3) откройте Image Asset из приложения> res (щелкните правой кнопкой мыши)> New> Image Asset.
3- В поле «Путь» выберите расположение прозрачного изображения, которое вы загрузили с веб-сайта, и установите другие параметры, как показано, затем «Далее», затем «Готово». Пять различных размеров изображения mdpi (48 × 48), hdpi (72 × 72), xhdpi (96 × 96), xxhdpi (144 × 144) и xxxhdpi (192 × 192) будут созданы в файле res / mipmap- плотность папок.
4- Если вам нужны размеры (размеры), отличные от указанных выше, вы можете использовать этот веб-сайт http://nsimage.brosteins.com/ для загрузки изображения PNG самого большого размера, которое будет использоваться в xxxhdpi. После загрузки вы можете загрузить zip-файл, содержащий изображения пяти разных размеров в папках res / drawable- density .
Используя android 3.0.1, я заметил это странное поведение (решение). Во-первых: в фоновом слое в source_asset измените asset_type с изображения на цвет, а затем снова измените его на изображение. во-вторых: включите обрезку при масштабировании, а затем измените размер до небольшого процента, и все будет работать отлично. PS: Если вы не сделали первый шаг, масштабирование не повлияет. и если у кого-то есть объяснение по этому поводу, пожалуйста, предоставьте. шаги
Источник