Android Activity第三讲 给点颜色看看,安卓开发指南、教程

我们在之前的章节学会了如何修改界面中的字串,接下来我们给他们的颜色看看。修改界面控件属性大体有两种方法,通过main.xml定义,以及在Java code中设定,后者的优先级高,可以理解为main.xml指定了初始值,Java code在runtime时进行修改。
projects\helloworld\src\net\himagic\helloworld\HelloWorld.java


package net.himagic.helloworld;

import android.app.Activity;
import android.os.Bundle;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;

import android.widget.TextView;

public class HelloWorld extends Activity
{
	private TextView tv1, tv2, tv3;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tv1 = (TextView) findViewById(R.id.text1);
        tv2 = (TextView) findViewById(R.id.text2);
        tv3 = (TextView) findViewById(R.id.text3);

        //change string
        String str = "A Magic Heaven for You!";
        tv3.setText(str);

        Resources resources = getBaseContext().getResources();
        //change color
        tv2.setBackgroundDrawable(resources.getDrawable(R.drawable.green));
		tv3.setTextColor(Color.MAGENTA);

		//change string again
		CharSequence cs_url = getString(R.string.url);
		tv3.setText(str + "\n" + cs_url);
    }
}

projects\helloworld\res\layout\main.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="@drawable/white"
    >
<TextView  
	android:id="@+id/text1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/str1"
    android:background="@drawable/white"
    android:textColor="#000000"
    />
<TextView  
	android:id="@+id/text2"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Hello Magic!"
    android:textColor="#FF0000"
    />
<TextView  
	android:id="@+id/text3"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text=""
    android:textColor="#0000FF"
    />
</LinearLayout>


projects\helloworld\res\layout\color.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable name="yellow">#FFFFFF00</drawable>
    <drawable name="white">#FFFFFFFF</drawable>
    <drawable name="red">#FFFF0000</drawable>
    <drawable name="green">#FF00FF00</drawable>
</resources>

projects\helloworld\res\layout\strings.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="str1">Howdy Magic!</string>
    <string name="app_name">HelloWorld</string>
    <string name="url">http://www.himagic.net</string>
</resources>

在这个例子中,首先设定了背景色android:background="@drawable/white";第一段文字的背景色是在main.xml中定义的,"@drawable/white";第二段文字的背景色是利用Java代码tv2.setBackgroundDrawable(resources.getDrawable(R.drawable.green))设置的;第三段文字的前景色是利用tv3.setTextColor(Color.MAGENTA)代码实现的,可以看出Java代码覆盖了xml中的定义;最后利用getString(R.string.url)方法将第三段代码的内容进行了修改。
至此,你应该掌握如何操作资源了。Activity也可以像HTML那样引用style文件,style文件在Android中也是属于资源XML,本教程就不再赘述了。

发表评论

电子邮件地址不会被公开。

CAPTCHA image
*