Android studio font color

Совет: Работаем со своими шрифтами в Android O

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

А вот и первая предварительная версия Android O!

В этой серии мы рассмотрим некоторые из современных функций пользовательского интерфейса, с которыми вы можете начать экспериментировать сегодня, в версии Android O для предварительного ознакомления разработчиками.

В первом совете я показал вам, как настроить свою разработку для поддержки этого раннего предварительного просмотра O, и как создать текст, который автоматически масштабируется в соответствии с текущей конфигурацией экрана. В этом совете мы увидим, как Android O сделает работу с пользовательскими шрифтами беззаботной.

Добавление ваших шрифтов в проект

Вы когда-нибудь хотели выделить отдельный фрагмент текста? Или, может быть, вы были убеждены, что ваш шрифт станет отличным способом добавить в ваше приложение дополнительную индивидуальность?

Хотя есть много преимуществ при использовании пользовательских шрифтов, работа с ними на Android традиционно была болезненным опытом, требуя, чтобы вы либо использовали библиотеку, либо создали пользовательский View .

К счастью, работа с пользовательскими шрифтами в Android будет намного проще, так как пользовательские шрифты станут полностью поддерживаемым типом ресурсов в Android O. Это означает, что добавление пользовательского шрифта в ваше приложение будет таким же простым, как добавление любого другого ресурса, например изображения и текста.

Чтобы следовать этому руководству, вам понадобятся несколько файлов шрифтов, которые вы можете добавить в проект с Android O, который мы создали в первой части.

Android O поддерживает оба формата: .otf (OpenType) и .ttf (TrueType). Существует множество веб-сайтов, предлагающих такие шрифты бесплатно, поэтому потратьте несколько минут на поиск в Google, пока не найдете нужный шрифт.

Поскольку мы просто экспериментируем с новыми функциями Android O, не имеет особого значения, какой шрифт вы используете, но если вы ищете шрифты для использования в релизах вашего приложения, вы всегда должны смотреть условия использования этого шрифта. Только потому, что файл доступен для загрузки, не означает автоматически, что нет ограничений на то, как вы можете использовать и обращаться с этим файлом, поэтому всегда читайте мелкий текст!

Вы также должны задуматься о цели, содержании и целевой аудитории вашего приложения, так как разные шрифты передают разные сообщения. Если вы разрабатываете приложение, помогающее людям заполнять их налоговые декларации, то ваша аудитория с трудом сможет серьезно отнестись к финансовым и юридическим советам в вашем приложении, если оно поставляется со непонятным и странным шрифтом!

Как только вы найдете шрифт, с которым хотите работать, загрузите и разархивируйте его. На этом этапе вы должны проверить имя файла шрифта на наличие недопустимых символов — по сути это, что угодно, что не входит в строчные a-z, 0-9 или символ подчеркивания. Попробуйте использовать любые другие символы и Android Studio выдаст ошибку, как только вы попытаетесь сослаться на этот ресурс.

Так как у вас есть файл(ы) шрифтов, вам надо будет где-то их хранить:

  • Правый клик по папке app/res вашего проекта и выберите New > Android resource directory.
  • Откройте выпадающее меню и выберите font.
  • Введите font в File name.
  • Нажмите OK.

    Переместите файлы вашего шрифта в новую папку res/font.

    Использование своих шрифтов

    Вы можете применить свой шрифт к тексту, используя новый XML атрибут android:fontFamily :

    Вы можете добавить пользовательский шрифт к любым стилям, которые вы создали в приложении.

    Если вы хотите использовать свой шрифт программно, когда вы можете извлечь ваш шрифт используя метод getFont(int) , например:

    Создание семейства шрифта

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

    Если вы используете несколько версий одного и того же шрифта, вы можете сгруппировать их вместе в семейство шрифтов. Семейство шрифтов по существу является отдельным XML-файлом, в котором вы определяете каждую версию шрифта со всеми связанными с ним атрибутами стиля и веса.

    Чтобы создать семейство шрифтов:

    • Убедитесь, что вы добавили все файлы шрифта в папку res/font вашего проекта.
    • Щелкните правой кнопкой мыши по папке res/font вашего проекта и выберите New > Font resource file.
    • Дайте этому файлу имя и нажмите OK.
    • Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:

    Затем вы можете ссылаться на любой из шрифтов в этом семействе, используя атрибут android:fontFamily . Например:

    Не забудьте протестировать!

    В то время, как легко увлечься новыми функциями, не заходите за рамки пользовательских шрифтов! Согласованные UI легче в навигации и понимании, а если ваше приложение постоянно переключается между шрифтами, тогда ваши пользователи скорее обратят больше внимание на то, как выглядит ваш текст, а не на то, что о чем он говорит.

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

    Заключение

    В этом совете я показала вам, как создать более стильный и уникальный текст, добавив пользовательские шрифты в свои проекты. В заключительном посте этой серии мы переведём наш фокус с текста на изображения, так как я покажу вам, как создавать адаптивные значки запуска, которые автоматически адаптируют свою форму в соответствии с текущим устройством.

    В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!

    Источник

    Как установить цвет текста TextView в коде?

    В XML мы можем установить цвет текста с помощью атрибута textColor , например, android:textColor=»#FF0000″ . Но как мне его изменить путем кодирования?

    Я попробовал что-то вроде:

    Где holder – это просто класс, а text имеет тип TextView . Красный – это значение RGB (# FF0000), установленное в строках.

    Но он показывает другой цвет, а не красный. Какой параметр мы можем передать в setTextColor ()? В документации это говорит int , но является ли это ссылочным значением ресурса или чем-то еще?

    Вы должны использовать:

    Для проверки здравомыслия я просто попробовал, потому что у меня был проект в любом случае, и да, это красиво и красно, D

    Вы можете использовать различные функции из класса Color чтобы получить тот же эффект, конечно.

    Color.parseColor (Manual) (например, LEX)

    Color.rgb и Color.argb ( Manual rgb ) ( ручной аргумент ) (например, использование Ganapathy )

    И, конечно, если вы хотите определить свой цвет в XML файле, вы можете сделать это:

    Потому что функция getColor() устарела 1 , вам нужно использовать ее так:

    Вы также можете вставить простой HEX, например:

    Сначала у вас есть альфа-канал, затем значение цвета.

    Разумеется, вы получите полное руководство, открытый класс Color extends Object .

    1 Этот код также был здесь:

    Этот метод теперь устарел в Android M. Однако вы можете использовать его из contextCompat в библиотеке поддержки , как показывает пример.

    Если вы все еще хотите указать свои цвета в XML-файле:

    Затем укажите его в коде с помощью одного из этих двух методов:

    Первое, вероятно, предпочтительнее, если вы компилируете на Android M, однако тема, которую вы передаете, может быть нулевой, так что, может быть, вам это проще?

    И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого

    Вы можете сделать это только из XML-файла.

    Создайте файл color.xml в папке значений:

    Затем в любом XML-файле вы можете установить цвет текста, используя,

    Или вы можете использовать этот цвет в файле Java:

    Вы можете использовать

    Вы также можете указать, какой цвет вы хотите с помощью Transparency.

    A для значения Alpha (прозрачное) r-red g-green b-blue

    Обычно я делаю это для любых просмотров:

    AA определяет альфа (00 для прозрачных, FF для непрозрачных)

    RRGGBB определяет нормальный код цвета HTML (например, FF0000 для красного).

    Используйте следующий код в layout.xml

    Если вы планируете использовать setTextAppearance, вы должны знать, что он перепишет цвет текста стилем, унаследованным от темы. Поэтому, если вы хотите использовать оба варианта, установите цвет потом .

    Хотя это приведет к тому, что ваш текст будет выглядеть, например, белым (для темной темы) или черным (для легкой темы):

    Вопреки этому в XML порядок произволен.

    Я считаю, что если вы хотите указать цвет как ресурс (в файле XML ), вам нужно будет указать его значение ARGB (а не просто значение RGB).

    Попробуйте изменить значение цвета на #FFFF0000 . Он должен дать вам КРАСНЫЙ.

    Существует множество способов задать цвет в текстовом режиме.

    Добавить значение цвета в studio res-> values-> colors.xml as

    Теперь задайте цвет в классе xml или actvity как

    Если вы хотите, чтобы код цвета напрямую использовался ниже Color.parseColor code

    Вы также можете использовать RGB

    Использование также может использовать прямой hexcode для textView. Вы также можете вставить простой HEX, например:

    Вы также можете использовать argb с альфа-значениями.

    A для альфа (прозрачный) v.

    И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого

    holder.text.setTextColor(Color.rgb(200,0,0));
    или
    myTextView.setTextColor(0xAARRGGBB);

    Используя адаптер, вы можете установить цвет текста с помощью этого кода:

    text1.setTextColor (Color.parseColor ( «# 000000»));

    Над кодом работает на моей стороне. Здесь text TextView, цвет которого необходимо установить.

    Если вы хотите напрямую указать цветовой код, используйте

    Или если вы хотите дать цветовой код из папки цветов, то используйте

    В Adapter вы можете установить цвет текста с помощью этого кода:

    Чтобы установить цвет TextView, TextView.setTextColor(R.color.YOURCOLOR) недостаточно!

    Его нужно использовать так:

    Аналогично, я использовал color.xml :

    Для установки фона TextView например:

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

    Я сделал так: создайте XML-файл под названием Colors in res / values.

    Чтобы получить эти цвета из xml-файла, я использовал этот код: valor – это TextView, а ctx – объект Context. Я не использую его из Activity, а BaseAdapter для ListView. Вот почему я использовал этот объект контекста.

    Для обеспечения значений rgb: text.setTextColor(Color.rgb(200,0,0));
    Для разбора цвета из шестнадцатеричного значения: text.setTextColor(Color.parseColor(«#FFFFFF»));

    Если вы находитесь в адаптере и все еще хотите использовать цвет, определенный в ресурсах, вы можете попробовать следующий подход:

    Итак, попробуйте вот так:

    Я делал это для TextView в ViewHolder для RecyclerView. Я не уверен, почему, но это не сработало для меня в инициализации ViewHolder.

    Но когда я переместил его в onBindViewHolder, он работал нормально.

    Источник

    Tek Eye

    How does color work in Android? An Android color is a 32-bit integer value consisting of four eight bit parts (4×8=32). The four parts are tagged ARGB. This is the amount of Red, Green and Blue in the color, plus how opaque (see through) it is, called the Alpha value, the lower the alpha value the more transparent the color appears. (Note that in British English color is spelt colour.) This article shows how to set a color in Android and provides some demo code to try out.

    (This Android color tutorial assumes that Android Studio is installed, a basic app can be created and run, and the code in this article can be correctly copied into Android Studio. The example code can be changed to meet your own requirements. When entering code in Studio add import statements when prompted by pressing Alt-Enter.)

    Changing Colors in Android and Naming Them for Convenience

    The alpha value is the highest (first) byte in the 32-bit value, followed by the red, then green and finally the blue byte. Hence it is referred to as an ARGB value with each letter representing the type and order of the byte. This format allows for easy representation as a hexadecimal number in Java. Add this code to the basic starting app at the bottom of the onCreate in the MainActivity.java (the TextView displaying Hello World! is given the ID of textView):

    The three byes representing the color values provide over 16 million color possibilities in Android (256 x 256 x 256 = 16,777,216). A color depth better than the human eye (stated in the Wikipedia article). Plus all these colors can range from transparent (completely see through when alpha is 0), to opaque (completely solid when alpha is 255).

    Named Color Resources in Android

    To help with handling colors in Android they can be made into a resource for easy reuse. Either open an existing resource file or create a new one. In the Android Studio project there should be a colors.xml file in the res/values folder. In colors.xml add a definition for the required color, Lime is defined here as an example:

    (Note: To add a new resource first select the app in the Project explorer file. Then use the File or context menu, usually right-click, then the New option and select Android resource file. A color resource does not need to be stored in colors.xml, other file names can be used.)

    Use getColor() to read the color value from the resource:

    If the color is solid (full alpha value) then the color resource can leave the alpha value out. Though for clarity and future maintenance it is wise to be explicit and always define all four parts of an Android color:

    The use of a named color in a resource file is handy when dealing with common colors (such as the standard HTML named web colors, i.e. CSS colors, or X Window System and SVG color names). A resource file can be created to define the common colors for an app. Here is a resource file to use the HTML/CSS color names in Android code:

    Then just use them as required:

    Referencing Colors in Android XML Layouts

    To reference an Android color resource in an XML layout simple use @color/name_of_color, the same way other resources are referenced, such as strings:

    Accessing Android System Color Resources

    Are there predefined colors in Android? Yes, there are existing color resources, but not many. Also Google does not recommend using certain system resources as they are not guaranteed to stay the same in future releases, or even be there. You can browse the Android color resources in an app project. Select Packages at the top of the Project explorer in Studio. Expand the Libraries and android, in the R.class view the items in class color. There are resources such as R.color.black and R.color.holo_purple. The full list is also available in the R.color developer documentation. To access these resources you need the package qualifier, as in @android:color/black. In code add android before the R:

    Note that the Android color resources starting holo are not available on versions of Android prior to API level 14 (Ice Cream Sandwich).

    The Android Color Class

    There is a helper class in Android that has functions to ease the generation of color values from individual alpha, red, green and blue components, from strings and from Hue, Saturation and Value (HSV), and back again. The Color class defines a limited range of static colors, e.g. Color.YELLOW, see the Android developer documentation for full information on the Color class:

    Android Color class static constants: BLACK, BLUE, CYAN, DKGRAY, GRAY, GREEN, LTGRAY, MAGENTA, RED, TRANSPARENT, WHITE, YELLOW

    Color class methods: HSVToColor, RGBToHSV, alpha, argb, blue, colorToHSV, green, parseColor, red, rgb

    Android Oreo Introduced ColorSpace

    Android Oreo (API 26) introduce advanced color models that go beyond the previous RGB model, e.g. CMYK (the cyan, magenta, and yellow key format). For most apps the RGB colors are fine. However, for specialised applications the new models may be required. See the article Enhancing Graphics with Wide Color Content and the ColorSpace documentation on Android Developers.

    For wide color support the Color class was expanded to provide 64 bit color values. Existing methods now come with support for long, and the new methods are: colorspace, convert, getColorSpace, getComponent, getComponentCount, getComponents, getMaxValue, getMinValue, getModel, isInColorSpace, isSrgb, isWideGamut, luminance, pack, toArgb

    Changing Text Color in Android

    Use the textColor attribute to modify the color of text when it is defined in an XML layout:

    Android Color Codes Example Project

    To see all the above Android color hexadecimal codes and named colors in action use the color test demo project. Here are examples of the above in action:

    Download color-test.zip, extract it to a folder on your development PC and import it into Android Studio. This sample Android colors project is also available from the Tek Eye Android Example Projects page, where further details on importing a sample project into Studio is provided.

    Adding a Color Picker to an App

    If you need to add the ability to configure a color for a setting in an app it is easily done. The Android SeekBar can be used for a quick and easy color picker, drop four SeekBars onto a layout, one for each component of a color (only three are needed if you do not want to change the transparency). Use the methods from the Color class to combine the SeekBar outputs into the color value. Here’s one in action:

    An article on building the above color picker is available in the Android Color Picker Tutorial. That tutorial also covers the color picker available in the original Android API Demos app. The API Demos project was in the pre-Androud Studio versions of the Android Software Development Kit (SDK). In API Demos the color picker is in ColorPickerDialog.java.

    There are also plenty of other Android color pickers available, with full source, on GitHub, simply search for Android color picker.

    And Finally.

    What is the color of the Android Robot? Android green is 0xA4C639.

    Summary

    Storing ARGB color values in an Android resource files, e.g. #FFFF0000 , makes it easy to remember the color values for Views in Layouts. The names are easier to remember than hex strings. There is a Color helper class available to help with color conversion and value extraction. Several free color picker Views are available to add color selection functionality to apps.

    See Also

    • Download the code for this example, available in color-test.zip
    • An Android Color Picker Tutorial with example source code and project.
    • See Color State List Resource for information on changing colors in Views on different states.
    • See the Android Studio example projects to learn Android app programming.
    • For a full list of all the articles in Tek Eye see the full site Index.

    Acknowledgements

    Author: Daniel S. Fowler Published: 2013-04-15 Updated: 2017-11-26

    Do you have a question or comment about this article?

    (Alternatively, use the email address at the bottom of the web page.)

    ↓markdown↓ CMS is fast and simple. Build websites quickly and publish easily. For beginner to expert.

    Free Android Projects and Samples:

    Источник

    Читайте также:  Screen mirroring для андроид инструкция
Оцените статью