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