Как поменять цвет в андроид студио
Перейти к содержимому

Как поменять цвет в андроид студио

  • автор:

Как поменять цвет в андроид студио

В приложении 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);

Смена цвета кнопки в Android

Фиолетовая кнопочка

background не меняет цвет кнопок, а backgroundTint меняет, точно не знаю в чем дело, но когда трогаешь первое то у тебя пропадают все настройки по типу радиуса или инсета, наверное это из за того что button имеет свою чуть более подточенную модель макета, в любом случае это должно решить вашу проблема, а для большей кастомизации рекомендую использовать shape как уже описали тут

Изменение цвета кнопки Floating Action Button в Android

В разработке приложений под Android часто возникает необходимость изменить цвет кнопки Floating Action Button. Однако, выполнить это не всегда бывает просто. Например, кажется логичным попробовать изменить цвет фона кнопки следующим образом:

<android.support.design.widget.FloatingActionButton . android:background="@color/mycolor" />

Или же с помощью кода:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setBackgroundColor(Color.parseColor("#mycolor"));

Однако, эти подходы не приводят к желаемому результату. Кнопка либо остается зеленой, либо становится квадратной. Ниже представлено решение этой проблемы.

Изменение цвета кнопки:

Для изменения цвета кнопки Floating Action Button следует использовать атрибут app:backgroundTint , а не android:background . Таким образом, код будет выглядеть следующим образом:

<android.support.design.widget.FloatingActionButton . app:backgroundTint="@color/mycolor" />

Для изменения цвета в коде можно использовать метод setBackgroundTintList :

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#mycolor")));

Добавление эффекта ripple:

Эффект ripple можно добавить с помощью атрибута app:rippleColor . Вот пример его использования:

<android.support.design.widget.FloatingActionButton . app:rippleColor="@color/mycolor" />

В коде этот эффект можно добавить следующим образом:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setRippleColor(Color.parseColor("#mycolor"));

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

Как поменять цвет и содержимое в Toolbar?

Всем привет. Не судите за дурацкие вопрос, я недавно начала разбираться в Android Studio и собственно, Java. Вроде все делаю как пишут, а не выходит каменный цветок.
Добавляю тулбар, он серого цвета, хотя в теме прописаны другие(в других местах colorPrimary работает). И на нем написано «android. Toolbar». Если я правильно поняла, должно быть название приложения? Короче, не могу ничего добавить внутрь и не могу изменить цвет. Почему? Уверена, что ответ какой то очень простой, где-то я что то не то написала, но никак не могу понять где. Помогите, пожалуйста.

    
  #8F00AD #8F00AD #D81B60 
  • Вопрос задан более трёх лет назад
  • 1685 просмотров

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

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