画廊视图Gallery

幻灯片图片浏览器

1.布局

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

 2     xmlns:tools="http://schemas.android.com/tools"

 3     android:layout_width="match_parent"

 4     android:layout_height="match_parent"

 5     android:orientation="vertical"

 6     tools:context=".AndroidGalleryActivity" >

 7 

 8     <ImageSwitcher

 9         android:id="@+id/imgswi"

10         android:layout_width="320dp"

11         android:layout_height="320dp" />

12 

13     <Gallery

14         android:id="@+id/gallery"

15         android:layout_width="match_parent"

16         android:layout_height="wrap_content"

17         android:layout_marginTop="25dp"

18         android:unselectedAlpha="0.6"

19         android:spacing="3pt"

20          />

21 

22 </LinearLayout>

2.逻辑控制

  1 package com.example.androidgallery;

  2 

  3 import android.os.Bundle;

  4 import android.app.Activity;

  5 import android.content.res.TypedArray;

  6 import android.support.v4.view.ViewPager.LayoutParams;

  7 import android.view.Menu;

  8 import android.view.View;

  9 import android.view.ViewGroup;

 10 import android.view.animation.AnimationUtils;

 11 import android.widget.AdapterView;

 12 import android.widget.AdapterView.OnItemSelectedListener;

 13 import android.widget.BaseAdapter;

 14 import android.widget.Gallery;

 15 import android.widget.ImageSwitcher;

 16 import android.widget.ImageView;

 17 import android.widget.ViewSwitcher.ViewFactory;

 18 

 19 public class AndroidGalleryActivity extends Activity {

 20 

 21     int[] imageIds=new int[]{

 22     R.drawable.mm,

 23     R.drawable .mm2,

 24     R.drawable.mm3,

 25     R.drawable.mm4

 26     } ;

 27     

 28     @Override

 29     protected void onCreate(Bundle savedInstanceState) {

 30         super.onCreate(savedInstanceState);

 31         setContentView(R.layout.activity_android_gallery);

 32         final Gallery gallery=(Gallery)this.findViewById(R.id.gallery);

 33         final ImageSwitcher imgswi=(ImageSwitcher)this.findViewById(R.id.imgswi);

 34         //设置ViewFactory对象

 35         imgswi.setFactory(new ViewFactory() {

 36             

 37             @Override

 38             public View makeView() {

 39                 ImageView imageView=new ImageView(AndroidGalleryActivity.this);

 40                 imageView.setBackgroundColor(0xff0000);

 41                 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);

 42                 imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

 43                 return imageView;

 44             }

 45         });

 46         //设置图片更换动画效果

 47         imgswi.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));

 48         imgswi.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));

 49         //创建一个BaseAdapter对象,负责提供Gallery显示每张图片

 50         BaseAdapter adapter=new BaseAdapter() {

 51             

 52             @Override

 53             public View getView(int position, View convertview, ViewGroup parent) {

 54                 //创建一个ImageView

 55                 ImageView imageView=new ImageView(AndroidGalleryActivity.this);

 56                 imageView.setImageResource(imageIds[position%imageIds.length]);

 57                 //设置ImageView缩放类型

 58                 imageView.setScaleType(ImageView.ScaleType.FIT_XY);

 59                 imageView.setLayoutParams(new Gallery.LayoutParams(75,100));

 60                 /*TypedArray typeArray=obtainStyledAttributes(R.styleable.Gallery);

 61                 imageView.setBackgroundResource(TypedArray)*/

 62                 return imageView;

 63             }

 64             

 65             @Override

 66             public long getItemId(int arg0) {

 67                 // TODO Auto-generated method stub

 68                 return arg0;

 69             }

 70             

 71             @Override

 72             public Object getItem(int arg0) {

 73                 // TODO Auto-generated method stub

 74                 return arg0;

 75             }

 76             

 77             @Override

 78             public int getCount() {

 79                 // TODO Auto-generated method stub

 80                 return imageIds.length;

 81             }

 82         };

 83         

 84         gallery.setAdapter(adapter);

 85         gallery.setOnItemSelectedListener(new OnItemSelectedListener() {

 86 

 87             @Override

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

 89                     int position, long id) {

 90                 // TODO Auto-generated method stub

 91                 imgswi.setImageResource(imageIds[position%imageIds.length]);

 92             }

 93 

 94             @Override

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

 96                 // TODO Auto-generated method stub

 97                 

 98             }

 99             

100         });

101     }

102 

103     @Override

104     public boolean onCreateOptionsMenu(Menu menu) {

105         // Inflate the menu; this adds items to the action bar if it is present.

106         getMenuInflater().inflate(R.menu.activity_android_gallery, menu);

107         return true;

108     }

109 

110 }

画廊视图Gallery

你可能感兴趣的:(gallery)