ANDROID笔记:Gallery的简单使用

 1 package com.example.adaptertest.gallery;

 2 

 3 import android.app.Activity;

 4 import android.os.Bundle;

 5 import android.os.Handler;

 6 import android.os.Handler.Callback;

 7 import android.os.Message;

 8 import android.view.View;

 9 import android.widget.AdapterView;

10 import android.widget.AdapterView.OnItemClickListener;

11 import android.widget.AdapterView.OnItemSelectedListener;

12 import android.widget.Gallery;

13 import android.widget.Toast;

14 

15 import com.example.adaptertest.R;

16 

17 @SuppressWarnings("deprecation")

18 public class GalleryActivity extends Activity {

19     int[] images = { R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4 };

20     // 可以用AdapterViewFlipper替换

21     Gallery gallery;

22     int counter = 0;

23 

24     @Override

25     protected void onCreate(Bundle savedInstanceState) {

26         super.onCreate(savedInstanceState);

27         setContentView(R.layout.gallerytest);

28 

29         gallery = (Gallery) findViewById(R.id.gallery_id);

30         gallery.setAdapter(new GalleryAdapter(GalleryActivity.this, images));

31         handler.sendEmptyMessageDelayed(1, 5000);

32         // 得到gallery选中的item的ID

33         // gallery.getSelectedItemId();

34         gallery.setOnItemClickListener(new OnItemClickListener() {

35 

36             @Override

37             public void onItemClick(AdapterView<?> parent, View view,

38                     int position, long id) {

39                 Toast.makeText(GalleryActivity.this, position + "",

40                         Toast.LENGTH_LONG).show();

41                 // 移除消息队列(点击图片事停止图片自动滚动)

42                 handler.removeMessages(1);

43             }

44         });

45         // 最前端的图片

46         gallery.setOnItemSelectedListener(new OnItemSelectedListener() {

47 

48             @Override

49             public void onItemSelected(AdapterView<?> parent, View view,

50                     int position, long id) {

51                 Toast.makeText(GalleryActivity.this, position + "",

52                         Toast.LENGTH_LONG).show();

53 

54             }

55 

56             @Override

57             public void onNothingSelected(AdapterView<?> parent) {

58                 Toast.makeText(GalleryActivity.this, "nothing",

59                         Toast.LENGTH_LONG).show();

60             }

61         });

62 

63     }

64 

65     Handler handler = new Handler(new Callback() {

66 

67         @Override

68         public boolean handleMessage(Message msg) {

69             if (msg.what == 1) {

70                 counter++;

71                 if (counter >= images.length) {

72                     counter = 0;

73                 }

74                 // 更换图片

75                 gallery.setSelection(counter);

76                 // 继续发送消息到队列(类似递归)

77                 handler.sendEmptyMessageDelayed(1, 5000);

78             }

79             return true;

80         }

81     });

82 }
package com.example.adaptertest.gallery;



import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

import android.widget.ImageView.ScaleType;



public class GalleryAdapter extends BaseAdapter {

    private int[] images;

    private Context context;



    public GalleryAdapter(Context convertView, int[] images) {

        this.context = convertView;

        this.images = images;



    }



    @Override

    public int getCount() {

        // TODO Auto-generated method stub

        return images.length;

    }



    @Override

    public Object getItem(int position) {

        // TODO Auto-generated method stub

        return images[position];

    }



    @Override

    public long getItemId(int position) {

        // TODO Auto-generated method stub

        return position;

    }



    @SuppressWarnings("deprecation")

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        // TODO Auto-generated method stub

        ImageView imageView = new ImageView(context);

        imageView.setImageResource(images[position]);

        imageView.setScaleType(ScaleType.FIT_XY);

        imageView.setLayoutParams(new Gallery.LayoutParams(500, 500));

        return imageView;

    }



}
 1 <?xml version="1.0" encoding="utf-8"?>

 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

 3     android:layout_width="match_parent"

 4     android:layout_height="match_parent"

 5     android:orientation="vertical" >

 6 

 7     <Gallery

 8         android:id="@+id/gallery_id"

 9         android:layout_width="wrap_content"

10         android:layout_height="wrap_content"

11         android:spacing="-20px"

12         android:unselectedAlpha="150" />

13 

14 </LinearLayout>

15 <!-- android:unselectedAlpha="150" 未被选择的图片的透明度 -->

16 <!-- android:spacing="-20px" 间隔 -->

 

你可能感兴趣的:(android)