画廊视图Gallery

时间:2022-04-23
本文章向大家介绍画廊视图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 }