从J2EE转向Android的第三天-----Gallery,Menu
package com.lhw.android;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView mTextView0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView0=(TextView)findViewById(R.id.myTextView);
mTextView0.setText(getString(R.string.str_txt1));
mTextView0.setTextColor(Color.BLUE);
((Gallery)findViewById(R.id.myGallery)).setAdapter(new ImageAdapter(this));
//跳转到下一Activity
Button btn=(Button)this.findViewById(R.id.btn);
btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Intent intent=new Intent();
intent.setClass(MainActivity.this,GalleryActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
});
}
public class ImageAdapter extends BaseAdapter{
//类成员myContext为Context父类
private Context myContext;
//使用android.R.drawable里的图片作为图库来源,类型为整数数组
private Integer[] myImageIds={
android.R.drawable.btn_minus,
android.R.drawable.btn_radio,
android.R.drawable.ic_lock_idle_low_battery,
android.R.drawable.ic_menu_camera,
android.R.drawable.ic_menu_call
};
//构造器只有一个参数,即要存储的Context
public ImageAdapter(Context c){
this.myContext=c;
}
//返回所有已定义的图片总数量
public int getCount(){
return this.myImageIds.length;
}
//利用getItem方法,取得目前容器中图像的数组ID
public Object getItem(int position){
return position;
}
public long getItemId(int position){
return position;
}
//取得目前欲显示的图像View,传入数组ID值使之读取与成像
public View getView(int position,View convertView,ViewGroup parent){
//创建一个ImageView对象
ImageView i=new ImageView(this.myContext);
i.setImageResource(this.myImageIds[position]);
i.setScaleType(ImageView.ScaleType.FIT_XY);
//设置这个ImageView对象的宽高,单位dip
i.setLayoutParams(new Gallery.LayoutParams(120,120));
return i;
}
//依据距离中央的位移量,利用getScale返回views的大小(0.0f to 1.0f)
public float getScale(boolean focused,int offset){
return Math.max(0,1.0f/(float)Math.pow(2,Math.abs(offset)));
}
}
}
package com.lhw.android;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class GalleryActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout1);
Gallery g=(Gallery)this.findViewById(R.id.myGallery1);
// 为缩略图浏览器指定一个适配器
g.setAdapter(new ImageAdapter(this));
g.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
//输出所点击图片的position
Toast.makeText(GalleryActivity.this, ""+position,Toast.LENGTH_SHORT).show();
}
});
}
public class ImageAdapter extends BaseAdapter{
private Context context;
private Integer[] myImageIds={R.drawable.me,R.drawable.wf,R.drawable.wf1,R.drawable.wf2};
public ImageAdapter(Context context){
this.context=context;
}
public int getCount() {
return myImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv=new ImageView(context);
iv.setImageResource(myImageIds[position]);
iv.setLayoutParams(new Gallery.LayoutParams(120,120));
iv.setScaleType(ImageView.ScaleType.FIT_XY);
return iv;
}
}
}
Menu:
重写Activity的两个方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,0,0,R.string.menu1);
menu.add(0,1,1,R.string.menu2);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case 0:
openOptionsDialog();
break;
case 1:
finish();
break;
}
return true;
}
感觉周末比平时还累,也得看会儿电影去了。