Как установить фон в сплошной цвет?Когда я использую setContentView, экран пуст - PullRequest
0 голосов
/ 02 февраля 2011

Я смотрел и пробовал много разных вещей, но независимо от того, что я делаю, экран всегда пустой, и я уверен, что я делаю что-то действительно глупое, и я надеюсь, что кто-то поймает это. 1001 *

Я пытаюсь чередовать фоновые цвета, но прежде чем я до этого доберусь, мне нужно получить его, чтобы хотя бы один цвет фона отображался правильно.

Во-первых, мой XML-макет работает нормально, и когда я попал в макет, он отображает цвет так, как я хочу. Когда я иду к setContentView () в действии, которое вызывает xml, оно никогда не отображается, и я получаю только пустой экран.

Во-вторых, после этой первоначальной проблемы, описанной выше, я попробовал несколько исправлений и соответственно пронумеровал их. Когда я делал исправление, я обычно только комментировал его, а не удалял после того, как он не работал. После определенных строк идет число, поэтому, если за тремя строками стоят 1, то это были три строки, использованные в попытке № 1.

В-третьих, пробуя эти исправления, я добавил XML-файл цветов, а также отобразил.

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

Спасибо за помощь.

public class Blink extends Activity {
    long startTime= System.currentTimeMillis();
    long now=0;//the current time in millis

public void OnCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    //TextView backgroundColor=new TextView(this);2,3,4,5,6
    //backgroundColor.setBackgroundColor(0xFFFF0000);5
    //backgroundColor.setBackgroundResource(R.color.royalBlue);2,3,4
    //backgroundColor.setVisibility(0);//make visible 3
    setContentView(R.layout.blank);1
    //setContentView(backgroundColor);4,5,6
    //backgroundColor.setBackgroundColor(Color.argb(255, 255, 255, 255));6

            //setContentView(R.layout.blink_blue);
    //blink from royal blue to blank
            /*while(true){
        startTime= System.currentTimeMillis();
        do{
            now=System.currentTimeMillis();
            setContentView(R.layout.blink_blue);
        }while((-(startTime-now))>1000);

        do{
            now=System.currentTimeMillis();
            setContentView(R.layout.blank);
        }while((-(startTime-now))>1000);
    }*/
}

Это начинается XML-файл

//it is formatted properly but for some reason stack overflow doesn't like it so I'm only posting relevant lines. 

//This is a Linear layout
android:id="@+id/blinkBlue"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/royalBlue"

Начинается файл цветов

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="royalBlue">#4169e1</color>//Yes I have tried #FF4169e1 instead
    <color name="plainBlue">#ff000000</color> 
    <color name="darkBlue">#ff000000</color>
    <color name="black">#00000000</color>
    <!-- I also know that the blues here aren't those colors... I'll change that when I fix this thing. -->
</resources>

Ответы [ 2 ]

0 голосов
/ 02 февраля 2011

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

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

0 голосов
/ 02 февраля 2011

Вы не устанавливаете цвета таким образом, Вы указываете цвета вашего Layouts, которые определены в ваших XML-файлах, а затем вы setContentView() для этого XML-файла.

Например, давайте представим, что вашФайл XML имеет имя my_layout.xml, тогда вы указали цвет в my_color.xml, поэтому вы идете следующим образом:

  • Вы пишете макет в my_layout.xml
  • Сейчасвы пишете ресурсный XML для цвета, как вы написали выше, и сохраняете его в /res/values/my_color.xml
  • Установите фон макета (определенный в my_layout.xml) как `android: background =" @ color / my_color"
  • в вашем коде, используйте setContentView(R.layout.my_layout)

. Это сделает my_layout.xml макетом вашего контента, и далее цвет фона будет обрабатываться макетом внутри my_layout.xml file.

Надеюсь, это поможет.

...