一、drawable资源的使用
1、在工程的res\drawable\目录下增加两张图片1.jpg、2.jpg。增加图片后,在编译工程时,R资源类会自动生成对图片的引用。
2、创建一个布局文件test_drawable.xml,并在布局文件中增加两个ImageView组件,其中一个直接引用1.jpg,另外一个在java源码中引用。
3、在com.example.app包中创建TestDrawableActivity类。代码如下:
package com.example.app;
import android.app.Activity;
import android.os.Bundle;
import android.content.res.*;
import android.graphics.drawable.*;
import android.widget.ImageView;
public class TestDrawableActivity extends Activity {
private ImageView imgView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test_drawable);
imgView=(ImageView)findViewById(R.id.DrawableImageView2);
Resources r=getResources();
Drawable draw= r.getDrawable(R.drawable.g2);
imgView.setImageDrawable(draw);
}
}
二、布局资源
三、菜单资源
任何视图组件都有两种创建方式:一种是通过布局文件中声明创建,另外一种就是在代码中创建。Android的菜单分为选项菜单、上下文菜单和子菜单。
菜单资源文件结构:<menu>根元素,<menu>根元素中会嵌套<item>和<group>子元素,而<item>中可以嵌套<menu>形成子菜单。
创建菜单很简单,Eclipse提供了一个可视化的编辑界面。创建好菜单资源文件后,创建一个TestMenuActivity的Java文件。
代码如下:
public class TestMenuActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId())
{
case R.id.MenuAbout:aboutAlert("演示菜单资源使用");break;
case R.id.MenuExit:exitAlert("确定要退出程序?");break;
}
return true;
}
private MenuInflater mi;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test_menu);
mi=new MenuInflater(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
mi.inflate(R.menu.test_menu, menu);
return true;
}
private void aboutAlert(String msg)
{
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage(msg)
.setCancelable(true)
.setPositiveButton("确定", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
return;
}
});
builder.create().show();
}
private void exitAlert(String msg)
{
AlertDialog.Builder builder=new Builder(this);
builder.setMessage(msg)
.setCancelable(true)
.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
})
.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
return;
}
});
}
}
代码中使用到MenuInflater类和AlertDialog.Builder类,MenuInflater类用作加载菜单资源文件(inflate()方法);AlertDialog类用作信息提示。
AlertDialog.Builder有几个常用的方法,setMessage()、setPositiveButton()、setNagativeButton()、create()、show()。setMessage()方法设置对话框的信息,setPositiveButton()方法设置确定按钮,setNagativeButton()方法设置取消按钮,create()方法生成一个对话框实例,show()方法显示对话框。