Android Gallery 和 ImageSwitcher

来源:互联网 发布:新手学java看什么书 编辑:程序博客网 时间:2024/04/29 23:34
import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.FrameLayout.LayoutParams;import android.widget.Gallery;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ViewSwitcher.ViewFactory;import com.stone.R;import com.stone.inject.InjectView;import com.stone.inject.Injector;import com.stone.util.DialogUtil;public class GalleryTestActivity extends Activity implements ViewFactory {@InjectView(R.id.gy_gallery)private Gallery gallery; //水平方向 显示一组图片@InjectView(R.id.is_switcher)private ImageSwitcher imageSwitcher;//一次只能显示一张图private int[] imagesIds = { R.drawable.a2,R.drawable.a3,R.drawable.a4,R.drawable.a5,R.drawable.a6,R.drawable.a7, //R.drawable.a8 };ImageView lastView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.gallery);Injector.get(this).inject();//init views//factory 只能设置 一个this.imageSwitcher.setFactory(GalleryTestActivity.this); //设置 factoryImageAdapter adapter = new ImageAdapter(this);this.gallery.setAdapter(adapter);this.gallery.setBackgroundColor(Color.CYAN);this.gallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {if (lastView!=null) {lastView.setLayoutParams(new Gallery.LayoutParams(120,120));lastView.setScaleType(ImageView.ScaleType.FIT_CENTER);}ImageView view2 = (ImageView) view;view2.setLayoutParams(new Gallery.LayoutParams(200,Gallery.LayoutParams.FILL_PARENT));view2.setScaleType(ImageView.ScaleType.FIT_CENTER);lastView = view2;DialogUtil.showToast(GalleryTestActivity.this, "选择的图片位置是:" + position);imageSwitcher.setImageResource(imagesIds[position]);} });}private class ImageAdapter extends BaseAdapter {private Context context;public ImageAdapter(Context context) {this.context = context;}@Overridepublic int getCount() {return imagesIds.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView = new ImageView(context);imageView.setImageResource(imagesIds[position]);imageView.setLayoutParams(new Gallery.LayoutParams(120,120));imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);return imageView;}}@Override // android.widget.ViewSwitcher. makeView()public View makeView() {ImageView imageView = new ImageView(this);imageView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);return imageView;}}

gallery.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Gallery     android:id="@+id/gy_gallery"    android:layout_width="fill_parent"    android:spacing="20dp"    android:animationDuration="2000"    android:layout_height="wrap_content" /><ImageSwitcher     android:id="@+id/is_switcher"     android:layout_width="fill_parent"    android:layout_height="fill_parent"/></LinearLayout>

效果图:


0 0