初学Android应用程序——资源文件、文字、字体颜色、文字背景颜色、按钮

本文介绍了一个简单的Android应用程序,该程序包含两个界面,通过按钮改变文本内容、颜色、背景及切换界面。文章详细展示了如何在XML中布局控件,并在Java代码中实现按钮监听和界面切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android工程建好后已经生成一个hellowold程序。里面有一个main.xml,这个就是Android的资源文件,就相当于VC++里的.rc文件,里面定义了一整个Activity和里面的控件。Activity可以理解为程序的一个界面。我写好了一个简单的程序:一个界面上有4个按钮,点击后分别改变画面中间的文字内容、颜色、背景颜色、切换到另一个画面。

 

第一个画面:

 

Activity1    

 

定义此界面的main.xml文件内容如下

 

<?xml version="1.0" encoding="utf-8"?>
<!-- AbsoluteLayout表示绝对定位控件的位置 -->
<AbsoluteLayout android:id= "@+id/AbsoluteLayout01"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:background= "@drawable/white"
xmlns:android= "http://schemas.android.com/apk/res/android" >

<!-- 定义4个按钮 -->
<Button android:layout_y= "350dip" <!--此按钮在画面的绝对位置-- >
android:layout_x="3dip"
android:layout_height="60dip" <!--此按钮的大小-->
android:layout_width="70dip"
android:id="@+id/Button01" <!--“@+id/”表示“/”后面的字符是此按钮的id-->
android:text="改变文字" > <!--此按钮上的显示的文字-->
</Button>
<Button android:layout_y= "350dip"
android:layout_x= "76dip"
android:layout_height= "60dip"
android:layout_width= "70dip"
android:id= "@+id/Button02"
android:text= "改变文字颜色" >
</Button>
<Button android:layout_y= "350dip"
android:layout_x= "149dip"
android:layout_height= "60dip"
android:layout_width= "70dip"
android:id= "@+id/Button03"
android:text= "改变文字背景" >
</Button>
<Button android:layout_y= "350dip"
android:layout_x= "222dip"
android:layout_height= "60dip"
android:layout_width= "70dip"
android:id= "@+id/Button04"
android:text= "改变窗口背景" >
</Button>

<!--定义画面中间的文字 -->
<TextView android:id= "@+id/TextView01"
android:layout_y= "128dip"
android:layout_x= "95dip"
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:text= "@string/movie1" >
</TextView>

</AbsoluteLayout>

 

 

 

第二个画面:

当点击“返回”后返回第一画面,点击“退出”结束整个程序。

 

第二个界面

 

定义此界面的.xml文件内容如下

 

<AbsoluteLayout android:id= "@+id/AbsoluteLayout01"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
xmlns:android= "http://schemas.android.com/apk/res/android" >

<Button android:id= "@+id/Button01"
android:text= "返回"
android:layout_y= "350dip"
android:layout_x= "76dip"
android:layout_height= "60dip"
android:layout_width= "70dip" >
</Button>
<Button android:id= "@+id/Button02"
android:text= "退出"
android:layout_y= "350dip"
android:layout_x= "149dip"
android:layout_height= "60dip"
android:layout_width= "70dip" >
</Button>

</AbsoluteLayout>

 

 

 

 

 

 

java程序如下:

package textview . beeboobeeboo . cn ;

import android.app.Activity ;
import android.os.Bundle ;
import android.view.View ;
import android.widget.Button ;
import android.widget.TextView ;
import android.graphics.Color ;
import android.graphics.drawable.Drawable ;
import android.content.res.Resources ;

public class textview extends Activity {
    private Button mButton1 ;
    private Button mButton2 ;
    private Button mButton3 ;
    private Button mButton4 ;
    private TextView mTextView ;
    private Resources resources ;
    private Drawable HippoDrawable_green ;
    private Drawable HippoDrawable_blue ;
    /** Called when the activity is first created. */
    @Override
    public void onCreate (Bundle savedInstanceState ) {
        super . onCreate (savedInstanceState );
        showLayout1 ();//显示第一个画面
    }
  
    public void showLayout1 (){
        setContentView (R . layout . main );

        //改变文字内容按钮
        mButton1 = (Button ) findViewById (R . id . Button01 );
        mTextView = (TextView )findViewById (R . id . TextView01 );
        mButton1 . setOnClickListener (new Button . OnClickListener ()
        {
            public void onClick (View v )
            {

                //java中比较字符串必须用equals(),直接用“==”的话比较的是变量的地址,

                //而且内容相同字符串的变量会是同一个地址,真神奇

                //equals函数中获取资源string.xml中的字符串使用用getResources().getString()
                if (mTextView . getText (). equals (getResources (). getString (R . string . movie2 )))
                {
                    mTextView . setText (R . string . movie1 );//这里却不用getResources().getString()也可以
                }
                else
                {
                    mTextView . setText (getResources (). getString (R . string . movie2 ));//用也可以,不明白为什么
                }
            }
        });
        //改变文字颜色按钮
        mButton2 = (Button ) findViewById (R . id . Button02 );
        mButton2 . setOnClickListener (new Button . OnClickListener ()
        {
            //@Override
            public void onClick (View v )
            {
                if (mTextView . getCurrentTextColor ()== Color . RED )//获取color.xml中定义的颜色值
                {
                    mTextView . setTextColor (Color . MAGENTA );//设置字体的颜色
                }
                else
                {
                    mTextView . setTextColor (Color . RED );
                }
            }
        });
        //改变文字背景颜色按钮
        mButton3 = (Button ) findViewById (R . id . Button03 );
        resources = getBaseContext (). getResources ();
        HippoDrawable_green = resources . getDrawable (R . drawable . green );
        HippoDrawable_blue = resources . getDrawable (R . drawable . blue );
        mTextView . setBackgroundDrawable (HippoDrawable_blue );
        mButton3 . setOnClickListener (new Button . OnClickListener ()
        {
            public void onClick (View v )
            {
                if (mTextView . getBackground (). equals (HippoDrawable_green ))//读取当前的背景颜色进行比较
                {
                    mTextView . setBackgroundDrawable (HippoDrawable_blue );
                }
                else
                {
                    mTextView . setBackgroundDrawable (HippoDrawable_green );
                }
            }
        });
        //切换画面按钮
        mButton4 = (Button ) findViewById (R . id . Button04 );
        mButton4 . setOnClickListener (new Button . OnClickListener ()
        {
            //@Override
            public void onClick (View v )
            {
                showLayout2 ();//显示第二个画面
            }
        });
    }
  
    public void showLayout2 (){
        setContentView (R . layout . secondary );//读取第二个画面的.xml文件
        mButton1 = (Button )findViewById (R . id . Button01 );
        mButton1 . setOnClickListener (new Button . OnClickListener ()
        {
            public void onClick (View v )
            {
                showLayout1 ();//显示第一个画面
            }
        });
        mButton2 = (Button )findViewById (R . id . Button02 );
        mButton2 . setOnClickListener (new Button . OnClickListener ()
        {
            public void onClick (View v )
            {
                finish ();//结束程序
            }
        });
    }
}

 

其他用到的资源文件:

定义textview中用到的字符串string.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name= "movie1" > 大内密探零零狗 </string>
    <string name= "movie2" > 哈利波特与魔法石 </string>
    <string name= "app_name" > textview </string>
</resources>

 

定义颜色的color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <drawable name= "darkgray" > #808080FF </drawable>
  <drawable name= "white" > #FFFFFFFF </drawable>
  <drawable name= "green" > #9dc774 </drawable>
  <drawable name= "blue" > #6a82d0 </drawable>
</resources>

 

初学Andorid和java,见笑了

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值