Android学习(5)-Android的资源访问(二)

来源:互联网 发布:虚拟机怎么连接网络 编辑:程序博客网 时间:2024/06/05 04:36

一、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()方法显示对话框。

原创粉丝点击