Как выделить цветом в java
Перейти к содержимому

Как выделить цветом в java

Как выделить цветом в java

В приложении Android также можно определять ресурсы цветов (Color). Они должны храниться в файле по пути res/values и также, как и ресурсы строк, заключены в тег . Так, по умолчанию при создании самого простого проекта в папку res/values добавляется файл colors.xml :

  #FFBB86FC #FF6200EE #FF3700B3 #FF03DAC5 #FF018786 #FF000000 #FFFFFFFF  

Цвет определяется с помощью элемента . Его атрибут name устанавливает название цвета, которое будет использоваться в приложении, а шестнадцатеричное число — значение цвета.

Для задания цветовых ресурсов можно использовать следующие форматы:

  • #RGB (#F00 — 12-битное значение)
  • #ARGB (#8F00 — 12-битное значение с добавлением альфа-канала)
  • #RRGGBB (#FF00FF — 24-битное значение)
  • #AARRGGBB (#80FF00FF — 24-битное значение с добавлением альфа-канала)

Чтобы не трогать и не портить данный файл, определим свой новый файл ресурсов и для этого добавим в папку res/values новый файл ресурсов, который назовем my_colors.xml .

Использование цвета в Android Studio и ресурсы color

Изменим файл my_colors.xml , добавив в него пару цветов:

  #A0EAE1 #00695C  

Применим цвета в файле activity_main.xml :

С помощью атрибута android:textColor устанавливается цвет текста в TextView, а атрибут android:background устанавливает фон TextView. В качестве значения они используют цвет, например, в том же шестнадцатеричном формате. Для получения самого цвета после «@color/» указывается имя ресурса.

Использование цвета в Android и Java и ресурсы color

Также можно использовать цветовые ресурсы в коде MainActivity:

package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.content.res.Resources; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); // получаем ресурсы Resources resources = getResources(); int textColor = resources.getColor(R.color.textViewFontColor, null); int backgroundColor = resources.getColor(R.color.textViewBackColor, null); ConstraintLayout constraintLayout = new ConstraintLayout(this); ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams (ConstraintLayout.LayoutParams.WRAP_CONTENT , ConstraintLayout.LayoutParams.WRAP_CONTENT); layoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID; layoutParams.topToTop = ConstraintLayout.LayoutParams.PARENT_ID; TextView textView = new TextView(this); textView.setText("Hello Android"); textView.setTextSize(32); // используем ресурсы color textView.setTextColor(textColor); textView.setBackgroundColor(backgroundColor); textView.setLayoutParams(layoutParams); constraintLayout.addView(textView); setContentView(constraintLayout); >>

Для получения цвета из ресурсов применяется метод resources.getColor() , который принимает два параметра. Первый параметр — идентификатор ресурса, цвет которого надо получить. Второй параметр представляет тему. Но поскольку в данном случае тема не важна, для этого параметра передаем значение null

Следует учитывать, что метод resources.getColor() с двумя параметрами, который использован выше, доступен, если для минимальная версия Android не ниже Android 6.0 (или Android 23). Однако минимальная версия Android ниже, то можно использовать устаревшую версию с одним параметром:

int textColor = resources.getColor(R.color.textViewFontColor); // вместо //int textColor = resources.getColor(R.color.textViewFontColor, null);

Как изменить цвет выводимого в консоль текста? [дубликат]

Мне нужно написать консольное приложение, в котором через System.out.println(«Какой-то текст»); выводится текст. Возможно ли как-то в коде задать цвет текста ?

Отслеживать
22k 3 3 золотых знака 27 27 серебряных знаков 37 37 бронзовых знаков
задан 22 дек 2016 в 15:23
Andreew Akulov Andreew Akulov
157 1 1 золотой знак 2 2 серебряных знака 10 10 бронзовых знаков
1 сен 2019 в 0:24

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Да, это возможно (но работать будет не везде):

public class Main < public static final String ANSI_RESET = "\u001B[0m"; public static final String ANSI_BLACK = "\u001B[30m"; public static final String ANSI_RED = "\u001B[31m"; public static final String ANSI_GREEN = "\u001B[32m"; public static final String ANSI_YELLOW = "\u001B[33m"; public static final String ANSI_BLUE = "\u001B[34m"; public static final String ANSI_PURPLE = "\u001B[35m"; public static final String ANSI_CYAN = "\u001B[36m"; public static final String ANSI_WHITE = "\u001B[37m"; public static void main(String[] args) < System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET); >> 

Отслеживать
ответ дан 22 дек 2016 в 15:30
22k 3 3 золотых знака 27 27 серебряных знаков 37 37 бронзовых знаков

  • java
  • io
    Важное на Мете
Связанные
Похожие

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1725

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как можно выводить в Java разным цветом сообщения в консоли от логгера в зависимости от типа сообщения?

Вывожу в программе логи в консоль через java.util.logging.Logger.

Выводимые строки обрабатываются этим форматером

package l2p; import java.io.PrintWriter; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.Formatter; import java.util.logging.LogRecord; public class ConsoleLogFormatter extends Formatter < private static final String CRLF = "\r\n"; private static final SimpleDateFormat tsformat = new SimpleDateFormat("HH:mm:ss.SSS "); private Date ts = new Date(); @Override public String format(LogRecord record) < StringBuffer output = new StringBuffer(); ts.setTime(record.getMillis()); output.append(tsformat.format(ts)); output.append(record.getMessage()); output.append(CRLF); if (record.getThrown() != null) try < StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); record.getThrown().printStackTrace(pw); pw.close(); output.append(sw.toString()); output.append(CRLF); >catch (Exception ex) <> return output.toString(); > > 

И собственно говоря интересует вопрос — как можно задать цвет строкам в зависимости от типа сообщения — fine, info, warning и т.д.
Притом это должно работать как в консоли Windows, так и в консоли Linux.

Может кому встречались какие-то готовые классы на эту тему или хотя бы подскажите в каком направлении копать.

  • Вопрос задан более трёх лет назад
  • 21498 просмотров

3 комментария

Оценить 3 комментария

Как изменить цвет текста в java

Для изменения цвета текста при выводе в консоль можно использовать управляющие коды ANSI.

Управляющие коды ANSI также позволяют изменить цвет фона, шрифт и др.

К примеру приведенный ниже код выведет в консоль текст синим цветом на желтом фоне :

public class App  public static final String ANSI_RESET = "\u001B[0m"; public static final String ANSI_BLUE = "\u001B[34m"; public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m"; public static void main(String[] args)  String text = "Hello World!"; System.out.println(ANSI_YELLOW_BACKGROUND + ANSI_BLUE + text + ANSI_RESET); > > 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *