EX03_15.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex03_15;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. /*欲在Layout里使用Gallery widget,必须引用这些模块*/
  7. import android.content.Context;
  8. import android.widget.Gallery;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.BaseAdapter;
  12. import android.widget.ImageView;
  13. public class EX03_15 extends Activity
  14. {
  15.   private TextView mTextView01;
  16.   
  17.   /** Called when the activity is first created. */
  18.   @Override
  19.   public void onCreate(Bundle savedInstanceState)
  20.   {
  21.     super.onCreate(savedInstanceState);
  22.     setContentView(R.layout.main);
  23.     
  24.     mTextView01 = (TextView) findViewById(R.id.myTextView01);
  25.     mTextView01.setText(getString(R.string.str_txt1));
  26.     mTextView01.setTextColor(Color.BLUE);
  27.     
  28.     ((Gallery) findViewById(R.id.myGallery1))
  29.                .setAdapter(new ImageAdapter(this)); 
  30.   }
  31.   
  32.   public class ImageAdapter extends BaseAdapter
  33.   { 
  34.     /* 类成员 myContext为Context父类 */ 
  35.     private Context myContext; 
  36.     
  37.     /*使用android.R.drawable里的图片作为图库来源,类型为整数数组*/
  38.     private int[] myImageIds =
  39.                   { 
  40.                     android.R.drawable.btn_minus,
  41.                     android.R.drawable.btn_radio,
  42.                     android.R.drawable.ic_lock_idle_low_battery,
  43.                     android.R.drawable.ic_menu_camera
  44.                   };
  45.     /* 构造器只有一个参数,即要存储的Context */ 
  46.     public ImageAdapter(Context c) { this.myContext = c; } 
  47.     /* 返回所有已定义的图片总数量 */ 
  48.     public int getCount() { return this.myImageIds.length; } 
  49.     /* 利用getItem方法,取得目前容器中图像的数组ID */ 
  50.     public Object getItem(int position) { return position; } 
  51.     public long getItemId(int position) { return position; }
  52.     
  53.     /* 取得目前欲显示的图像View,传入数组ID值使之读取与成像 */ 
  54.     public View getView(int position, View convertView, 
  55.                         ViewGroup parent)
  56.     { 
  57.       /* 创建一个ImageView对象 */
  58.       ImageView i = new ImageView(this.myContext);
  59.       
  60.       i.setImageResource(this.myImageIds[position]);
  61.       i.setScaleType(ImageView.ScaleType.FIT_XY); 
  62.       
  63.       /* 设置这个ImageView对象的宽高,单位为dip */ 
  64.       i.setLayoutParams(new Gallery.LayoutParams(120, 120)); 
  65.       return i; 
  66.     } 
  67.     /*依据距离中央的位移量 利用getScale返回views的大小(0.0f to 1.0f)*/
  68.     public float getScale(boolean focused, int offset)
  69.     { 
  70.       /* Formula: 1 / (2 ^ offset) */ 
  71.       return Math.max(0,1.0f/(float)Math.pow(2,Math.abs(offset)));
  72.      } 
  73.    }
  74. }