Gallery
控件, 即
Android的图片浏览控件,还是非常好用的,做个小例子说明一下:
首先是layout file:
接下来是代码,首先是需要定义一个BaseAdaper的子类来操作控制图片资源,然后在主类中通过Gallery.setAdapter(new ImageAdapter(this));来使用这个控制类。
以上只是一个很简单的例子,下一步就是要将Gallery与ImageSwitcher结合起来做一个电子相册。
首先是layout file:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Gallery
- android:id="@+id/gallery"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
- </LinearLayout>
- package com.zx.galery;
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- 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 GalleryTest extends Activity {
- private Gallery mGallery;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mGallery = (Gallery)findViewById(R.id.gallery);
- mGallery.setAdapter(new ImageAdapter(this));
- mGallery.setOnItemClickListener(new OnItemClickListener() {
- public void onItemClick(AdapterView parent, View v, int position, long id) {
- Toast.makeText(GalleryTest.this, "" + position, Toast.LENGTH_SHORT).show();
- }
- });
- }
-
- /*
- * class ImageAdapter is used to control gallery source and operation.
- */
- private class ImageAdapter extends BaseAdapter{
- private Context mContext;
- private Integer[] mImage = {
- R.drawable.sample_0,
- R.drawable.sample_1,
- R.drawable.sample_2,
- R.drawable.sample_3,
- R.drawable.sample_4,
- R.drawable.sample_5,
- R.drawable.sample_6,
- R.drawable.sample_7
- };
-
- public ImageAdapter(Context c){
- mContext = c;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return mImage.length;
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- ImageView i = new ImageView (mContext);
- i.setImageResource(mImage[position]);
- i.setScaleType(ImageView.ScaleType.FIT_XY);
- i.setLayoutParams(new Gallery.LayoutParams(136, 88));
-
-
- return i;
- }
-
- };
- }