1 使用颜色资源文件
先定义colors.xml颜色资源文件,代码如下
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<colorname="red_bg">#f00</color>
<colorname="blue_text">#0000ff</color>
</resources>
然后在activity_main.xml引用颜色资源,代码如下
<TextView
android:textColor="@color/blue_text" //设置视图字体颜色
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
然后在MainActivity类上设置视图背景颜色
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setBackgroundDrawableResource(R.color.red_bg); //设置视图背景颜色
}
2 使用字符串(string)常量
字符串引用格式为:"@string/字符串资源名称"
3 使用尺寸(dimen)资源
px 像素 屏幕上的真实像素表示
in 尺寸 基于屏幕的物理尺寸
dp 和密度无关的精度 相对屏幕物理密度的抽象单位
sp 和精度无关的像素 和dp相似
获得资源:Resources r = getResources();
dimens.xml代码
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimenname="activity_horizontal_margin">16dp</dimen>
<dimenname="activity_vertical_margin">16dp</dimen>
<dimenname="text_width">150px</dimen>//文本宽度
<dimenname="text_height">100px</dimen>//文本高度
<dimenname="btn_width">30mm</dimen> //按钮宽度
<dimenname="btn_height">10mm</dimen> //按钮高度
</resources>
使用dimen资源
//通过findViedById获得Button实例
myButton = (Button)findViewById(R.id.testDimenButton);
//获得Resource实例
Resources r = getResources();
//通过getDimension方法获得尺寸值
float btn_h = r.getDimension(R.dimen.btn_height);
float btn_w = r.getDimension(R.dimen.btn_width);
//设置按钮的宽高
myButton.setWidth((int)btn_w);
myButton.setHeight((int)btn_h);
4 使用布局(layout)资源
Android可以将屏幕中组件的布局方式定义在一个XML文件中,可以调用Activity.setContentView()方法将布局文件展示在Activity上。Android通过LayoutInflater类将XML文件中的组件解析为可视化的视图组件
layout.xml代码
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- 以上四个属性分别为命名空间,布局的宽,高(布满视图),组件布局(垂直) -->
<!-- 以下嵌套一个TableLayout -->
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:id="@+id/layoutTextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/test_view01"
android:background="@color/bk_col"/>
<!--
以上属性:引用组件ID,文本内容,该组件的宽,该组件的高,文本内容,背景颜色 -->
<EditText
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""/>
</TableRow>
<TableRowandroid:gravity="right">
<Button
android:id="@+id/layoutButton01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_string"/>
</TableRow>
</TableLayout>
</LinearLayout>
使用布局资源测试
public class MainActivity extends Activity {
//定义组件
private Button myButton;
private EditText myEditText;
private TextView myTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置Activity的界面布局
setContentView(R.layout.layout);
//展示组件
myTextView = (TextView)findViewById(R.id.layoutTextView01);
myButton = (Button)findViewById(R.id.layoutButton01);
myEditText = (EditText)findViewById(R.id.EditText01);
}
5 使用菜单(menu)资源
Android菜单分为选项菜单,上下文菜单和子菜单
结构组成: <menu>根元素,在<menu>根元素里面会嵌套<item>和<group>子元素,<item>元素中也可嵌套<menu>形成子菜单
<group>表示一个菜单组,属性说明:
id:唯一标示该菜单组的引用id
menuCategory:对菜单进行分类,定义菜单的有限级,有效值为container,system,secondary,alternative
orderInCategory:一个分类排序整数
checkableBehavior:选择行为,单选,多选还是其他,有效值为none,all,single
visible:是否可见,true或者false
enabled:是否可用,true或者false
<item>表示菜单项,包含在<menu>或<group>中的有效属性,<item>元素的属性说明:
id:唯一标示菜单的ID引用
menuCategory:菜单分类
orderInCategory:分类排序
title:菜单标题字符串
titleCondensed:浓缩标题,适合标题太长的时候使用
icon:菜单的图标
alphabticShortcut:字符快捷键
numericShortcut:数字快捷键
checkable:是否可选
checked:是否已经被选
visible:是否可见
enabled:是否可用