从J2EE转向Android的第三天-----Gallery,Menu

本文深入探讨了Android应用开发过程中的关键要素,包括界面设计、功能实现、用户体验优化等核心内容,通过实例展示了如何利用Android SDK进行高效开发,旨在提升开发者在实际项目中的实践能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
 }

 

感觉周末比平时还累,也得看会儿电影去了。

 

 

 

 

 


 

 

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值