Android普通和循环Gallery

效果图:

代码

Main.java

package com.example.gallerydemo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ImageView.ScaleType;

public class Main extends Activity {

	private Gallery gallery = null;
	private Gallery galleryLoop = null;
	private TextView tvNum = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		tvNum = (TextView) findViewById(R.id.num);

		gallery = (Gallery) findViewById(R.id.gallery);
		gallery.setAdapter(new ImageAdapter(this));
		gallery.setSpacing(5);

		gallery.setOnItemClickListener(new OnItemClickListener() {

			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				int num = arg2 + 1;
				// Toast.makeText(Main.this, "点击了" + num, Toast.LENGTH_SHORT)
				// .show();
				tvNum.setText("常规Gallery:点击了" + num);
			}
		});

		galleryLoop = (Gallery) findViewById(R.id.galleryLoop);
		galleryLoop.setAdapter(new LoopImageAdapter(this));
		galleryLoop.setSpacing(10);
		galleryLoop.setOnItemClickListener(new OnItemClickListener() {

			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				int num = (arg2 + 1) % 9;
				if (num == 0) {
					num = 9;
				}
				// Toast.makeText(Main.this, "点击了" + num, Toast.LENGTH_SHORT)
				// .show();
				tvNum.setText("循环Gallery:点击了" + num);
			}

		});

	}

	// 普通Gallery的Adapter
	class ImageAdapter extends BaseAdapter {
		private Context context;

		public ImageAdapter(Context context) {
			this.context = context;
		}

		private Integer[] imageInteger = { R.drawable.pic_1, R.drawable.pic_2,
				R.drawable.pic_3, R.drawable.pic_4, R.drawable.pic_5,
				R.drawable.pic_6, R.drawable.pic_7, R.drawable.pic_8,
				R.drawable.pic_9 };

		public Object getItem(int position) {
			return position;
		}

		public long getItemId(int position) {
			return position;
		}

		public int getCount() {
			return imageInteger.length;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView imageView = new ImageView(context);
			imageView.setImageResource(imageInteger[position]);
			imageView.setScaleType(ImageView.ScaleType.FIT_XY);
			imageView.setLayoutParams(new Gallery.LayoutParams(100, 100));
			return imageView;

		}

	}

	// 循环Gallery的Adapter
	class LoopImageAdapter extends BaseAdapter {
		private Context context;

		public LoopImageAdapter(Context context) {
			this.context = context;
		}

		private Integer[] imageInteger = { R.drawable.pic_1, R.drawable.pic_2,
				R.drawable.pic_3, R.drawable.pic_4, R.drawable.pic_5,
				R.drawable.pic_6, R.drawable.pic_7, R.drawable.pic_8,
				R.drawable.pic_9 };

		public Object getItem(int position) {
			return position;
		}

		public long getItemId(int position) {
			return position;
		}

		public int getCount() {
			return Integer.MAX_VALUE;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView imageView = new ImageView(context);
			imageView.setImageResource(imageInteger[position
					% imageInteger.length]);
			imageView.setScaleType(ImageView.ScaleType.FIT_XY);
			imageView.setLayoutParams(new Gallery.LayoutParams(100, 100));
			return imageView;
		}

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context="com.example.gallerydemo.Main" >

    <TextView
        android:id="@+id/num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:src="@drawable/arrow_down" />

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom" />

    <Gallery
        android:id="@+id/galleryLoop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:src="@drawable/arrow_up" />

</LinearLayout>


转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui

我的GitHub:周木水的GitHub https://github.com/zhoumushui


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。