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. Мощный режим, с помощью которого можно использовать любое из шестнадцати правил смешивания изображений Портера-Даффа, управляя процессом наложения кисти на уже существующий рисунок.
Читайте также:  Устройство nfc для андроид что это

Для того чтобы применить один из этих режимов, используйте метод setXferMode():

Сглаживание

При создании нового объекта Paint вы можете передать в его конструктор несколько флагов, которые будут влиять на способ отображения. Одним из наиболее интересных из них считается флаг ANTI_ALIAS_FLAG, обеспечивающий сглаживание диагональных линий, рисуемых объектом Paint (снижая при этом производительность).

Сглаживание играет важную роль в процессе отрисовки текста, значительно упрощает его восприятие. Чтобы сделать текст более гладким, можете использовать флаг SUBPIXEL_TEXT_FLAG, который применяет субпиксельное сглаживание. Можно задать оба этих флага программно, используя методы setSubpixelText() и setAntiAlias():

Класс Path

Класс Path позволяет рисовать контуры разных типов — пунктиры, сглаживание линий и т.д.

Класс Canvas

Класс Canvas представляет собой специальную поверхность (холст), на которой вы можете рисовать. С помощью многочисленных методов класса вы можете рисовать линии, окружности, дуги и так далее.

Класс Bitmap

Класс Bitmap отвечает за растровые картинки.

Источник

Программирование под Android. Задание элементам прозрачных и полупрозрачных оттенков (цветов).

Прозрачность цвета задается первыми двумя символами.

Ниже я представлю эти 2 символа и их эквивалент в процентах прозрачности цвета.

Применить их можно так (файл colors.xml ):

color name=»transp» > # 00000000 color >

color name=»transp_black» > # 1A000000 color >

прозрачность —>
color name=»green_transp_15″ > # 2600FF00 color > прозрачность —> color name=»blue_transp_15″ > # 260000FF color > resources >

Таким образом цвет можно назначить так.

// На примере кнопки

Button button_1 = (Button) findViewById(R.id. button_2_1 );

button_1.setBackgroundColor(ContextCompat. getColor (Main_Activity. this , R.color. green_transp_15 ));

Button test_tr = (Button)findViewById(R.id. button_6 );

test_tr.setTextColor(ContextCompat. getColor ( Main_Activity . this , R.color. green_transp_15 ));

Для задания прозрачности элементам (кнопкам, изображениям и т.д.) вы можете использовать в своем макете

0.0 полностью прозрачный, 1,0 полностью непрозрачен.

Вы можете, так же назначить прозрачность в коде.

Для этого есть функция (setAlpha())

На примере кнопки:

Button test_tr = (Button)findViewById(R.id. button_6 );

Подписывайтесь на канал, не пропустите новые публикации.

Источник

Установить прозрачный фон 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 Прозрачный TextView?

просто как сделать TextView прозрачным? (не полная прозрачность)

Я искал документы и StackNetwork и не мог найти его? Думаю, что-то в этом роде.

обновление

Я хочу футер TextView прозрачный so that the ListView items can be seen while scrolling

12 ответов

пожалуйста, попробуйте этот кусок кода..

используется фоновое изображение как прозрачное, поэтому его можно решить.

или

или

пожалуйста, попробуйте ниже .

в принципе, у вас есть возможность установить прозрачность (непрозрачность) и цвет либо непосредственно в макете, либо с помощью ссылок на ресурсы.

шестнадцатеричное значение, которое вы установили для него, состоит из 3 до 4 частей:

Альфа (непрозрачность), я буду называть это aa

Красный, я буду называть его РР

зеленый, я буду называть его гг

Синий, я буду называть его bb

без Альфа (прозрачность) значение:

С Альфа (прозрачность) значение:

Альфа-значение для полное прозрачность 00 и Альфа-значение для нет прозрачность FF.

см. полный диапазон шестнадцатеричных значений ниже:

вы можете экспериментировать со значениями между ними.

ниже кода для черного: —

Теперь если я хочу использовать непрозрачность, чем вы можете использовать ниже код :-

и ниже для кода непрозрачности: —

Значения Непрозрачности Hex

для меня, я также должен был установить его цвет.Прозрачный на родительском макете.

хотя этот ответ очень поздно, но может помочь другому разработчику, поэтому я размещаю его здесь.

ответы выше, показывающие только, как установить прозрачный фон TextView. Мы можем достичь прозрачного Textview backcgorund двумя способами:

  1. установив код непрозрачности, такой как #88000000 в android: background attribute
  2. установив атрибут android:alpha=»0.5″ в TextView

второй подход лучше, потому что это дает гибкость для установки фона с другим цветом, а затем установка настройки непрозрачности виджета с помощью android: alpha= «0.2»

Если вы ищете что-то вроде текстового представления на изображении в приложении pulse, сделайте это

попробуйте android:background=»#00000000″ в TextView. Установка Альфа цвета 00 сделает фон прозрачным.

Читайте также:  Android studio под linux

Я не пробовал это, но он должен работать.

все правильно отвечают о прозрачности, но не слушают, что нужно парню в отношении прокрутки списка за нижним колонтитулом.

вам нужно сделать нижний колонтитул частью вашего ListView . На данный момент список не будет прокручиваться, потому что макет ListView не идет за нижним колонтитулом с прозрачностью. Сделайте RelativeLayout и расположите прозрачность внизу.

в случае если кто-то хочет сделать это в способ программирования! Сделать следующее: Обновите файл цвета в папке values с помощью этого.

затем вызвать прозрачности programitically

привет, пожалуйста, попробуйте с цветовым кодом ниже в качестве фона textview.

Источник

Установите прозрачный фон изображения на 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 не может быть просмотрен через него.

Используйте нижеприведенный код для черного:

Теперь, если вы хотите использовать непрозрачность, вы можете использовать приведенный ниже код:

Источник

Оцените статью