全部博文(436)
分类: Java
2011-04-13 23:13:21
一、 本周计划内容
1. 学习android中资源的类型和布局。
2. 学会使用颜色资源、字符串资源、尺寸资源、原始XML资源、drawables资源、布局资源、菜单资源。
3. 通过学习使用各个资源,了解各个文件的作用及资源间的联系。
二、 实验内容
1、 新工程建立完成后,都会生成一个res文件夹,此文件夹是用来保存不同类型的资源文件。在此目录下有一下几个目录。
1) anim:存放XML动画文件
2) drawable:存放一些位图文件
3) layout:XML布局文件
4) values:存放各种XML资源文件——arrays.xml:XML数组文件;colors.xml:XML 颜色文件;dimens.xml:XML尺寸文件;styles.xml:XML样式文件
5) xml:任意的xml文件
6) raw:直接复制到设备中的原生文件
7) menu:XML菜单文件
2. 各种资源的使用
1)颜色资源:
XML文件格式:
获取颜色方法:Resources.getColor()
引用资源格式:Java代码中:R.color.color_name
XML文件中:@[ackage:]color/color_name
2)字符串资源:
XML文件格式:
获取颜色方法:Resources.getString()
引用资源格式:Java代码中:R.string.string_name
XML文件中:@[ackage:]string/string_name
3. 使用颜色资源
新建一个名为android.chapter3.res的工程,包名称为android.chapter.res,并创建一个名为chapter3的activity。完成后生成如图1所示结构。在res中添加colors.xml,在chapter3.java中调用颜色资源,在main.xml中布局输出界面及其属性。
图1 结构图
将鼠标放置在该工程名,点击右键,出现图2所示界面,在这里新增颜色资源。
图2 新建颜色资源(1)
点击next后,出现图3,填写文件名colors.xml,并选择values类型。
图3 图2 新建颜色资源(2)
创建完成后,编写颜色代码,下面深色部分为自己添加,要在<resources>
resources>之间添加,首先在前面的color中通过“name”来给该颜色命名,在
xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red_bg">#f00color>
<color name="blue_text">#0000ffcolor>
resources>
图4 颜色代码
定义好两个颜色后,一个是背景颜色,一个是文本的颜色,下面就要通过一定的方式来使用这两个颜色。
首先调用字体颜色:在layout中使用这两个颜色,打开main.xml,首先在图形界面上添加一个textview和一个editext,如图5所示。
图5 布局图形界面
下面进入代码部分,如图6所示,并对代码进行相应的修改。如图7为修改的代码。调用颜色的部分为:
android:textColor="@color/blue_text"
android:textColor="@color/blue_text"
图6 main.xml代码
图7 修改代码
背景颜色的调用是在类中,本实验的类为chapter3.java,打开后,在里面添加如图8所示的几项,代码如下:
import android.chapter.res.R;——调用gen目录下的R类。
getWindow().setBackgroundDrawableResource(R.color.red_bg);——注意大小写
图8 修改chapter3.java的代码
之后点击运行。运行结果如图9所示。可以在文本编辑框中输入自己想输入的字符。
图9 运行结果
4. 使用字符串资源
图10 string.xml代码
1)从代码中引用:在layout中建立一个test_string.xml文件,如图11所示。建立完成后,进行代码编辑,如图12所示。android:text="@string/test_str1"
图11 新建test_string.xml
图12 编辑代码
2)从资源中引用
在资源中应用时,要在java类中进行编辑,如图13所示。图14为最后运行结果。
private TextView myTextView;
——定义一个名为myTextView的TextView变量。
myTextView = (TextView)findViewById(R.id.textView2);
——给这个变量获取文本框
String str = getString(R.string.test_str2).toString();
——获取字符变量
myTextView.setText(str);
——将这个字符变量放入文本框中
图13 在java类中引用
图14 运行结果
三、 下周计划
本周本想把资源都练习一下,但由于时间原因,到交作业的期限还没有完成,因此先交一部分,下面几个资源也会在本周内尽量完成。