Android: изменение цвета фона действия (основной вид) - PullRequest
23 голосов
/ 22 января 2012

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

view.setBackgroundColor(0xfff00000);

Это внутри OnClickListener, но оно просто меняет фон кнопки.

Ответы [ 6 ]

57 голосов
/ 22 января 2012

Попробуйте создать метод в вашем Activity что-то вроде ...

public void setActivityBackgroundColor(int color) {
    View view = this.getWindow().getDecorView();
    view.setBackgroundColor(color);
}

Затем вызовите его из вашего OnClickListener, передавая любой желаемый цвет.

9 голосов
/ 22 января 2012

Я не знаю, является ли это ответом на ваш вопрос, но вы можете попробовать установить цвет фона в xml-макете следующим образом.Это просто, это всегда работает

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

 android:background="0xfff00000"

  >


<TextView

    android:id="@+id/text_view"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/hello"

    />



</LinearLayout>

Вы также можете делать более причудливые вещи с фонами, создав XML-фоновый файл с градиентами, которые являются классными и полупрозрачными, и обратитесь к нему для другого использования, см. Пример ниже:

макет background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <gradient
            android:angle="90"
            android:startColor="#f0000000"
            android:endColor="#ff444444"
            android:type="linear" />
    </shape>
</item>
</selector>

ваш макет

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

 android:background="@layout/background"


    >


<TextView

    android:id="@+id/text_view"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/hello"

    />



</LinearLayout>
7 голосов
/ 15 февраля 2014

Просто добавьте этот код в одну строку ниже в XML-файле соответствующего действия:

android:background="@android:color/black" 

это вам точно поможет.

3 голосов
/ 13 января 2015

Первый метод

 View someView = findViewById(R.id.randomViewInMainLayout);// get Any child View

  // Find the root view
  View root = someView.getRootView()

  // Set the color
  root.setBackgroundColor(getResources().getColor(android.R.color.red));

Второй метод

Добавить эту строку после setContentView (...);

getWindow().getDecorView().setBackgroundColor(Color.WHITE);

Третий метод

установить цвет фона для rootView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:id="@+id/rootView"
</LinearLayout>

Важная вещь

rootView.setBackgroundColor(0xFF00FF00); //after 0x the other four pairs are alpha,red,green,blue color. 
1 голос
/ 21 ноября 2013

Вы также можете попробовать указать Id для основного макета и изменить его фон с помощью основных манипуляций и поиска. Например:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hello"

За которым может последовать доступ через R.id.hello .... Довольно просто, и я надеюсь, что это поможет:)

0 голосов
/ 22 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...