Android开发教程:Gallery和GridView浅析


一.Gallery的简介

    Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息。Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果。

Gallery常用的XML属性

属性名称

描述

Android:animationDuration

设置布局变化时动画的转换所需的时间(毫秒级)。仅在动画开始时计时。该值必须是整数,比如:100

android:gravity

指定在对象的XY轴上如何放置内容。指定一下常量中的一个或多个(使用 “|”分割)

Constant

Value

Description

top

0x30

紧靠容器顶端,不改变其大小

bottom

0x50

紧靠容器底部,不改变其大小

left

0x03

紧靠容器左侧,不改变其大小

right

0x05

紧靠容器右侧,不改变其大小

center_vertical

0x10

垂直居中,不改变其大小

fill_vertical

0x70

垂直方向上拉伸至充满容器

center_horizontal

0x01

水平居中,不改变其大小

Fill_horizontal

0x07

水平方向上拉伸使其充满容器

center

0x11

居中对齐,不改变其大小

fill

0x77

在水平和垂直方向上拉伸,使其充满容器

clip_vertical

0x80

垂直剪切(当对象边缘超出容器的时候,将上下边缘超出的部分剪切掉)

clip_horizontal

0x08

水平剪切(当对象边缘超出容器的时候,将左右边缘超出的部分剪切掉)

android:spacing

图片之间的间距

android:unselectedAlpha

设置未选中的条目的透明度(Alpha)。该值必须是float类型,比如:“1.2”。

首先介绍Gallery单独使用的例子:

MainActivity.java

  1. package com.android.gallerydemo;  
  2.  
  3. import android.app.Activity;  
  4. import android.content.Context;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.ViewGroup;  
  8. import android.widget.AdapterView;  
  9. import android.widget.AdapterView.OnItemClickListener;  
  10. import android.widget.BaseAdapter;  
  11. import android.widget.Gallery;  
  12. import android.widget.ImageView;  
  13. import android.widget.Toast;  
  14.  
  15. public class MainActivity extends Activity {  
  16.  
  17.    private Gallery gallery;  
  18.     @Override 
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.         gallery = (Gallery)findViewById(R.id.gallery);  
  24.         //设置图片适配器  
  25.         gallery.setAdapter(new ImageAdapter(this));  
  26.         //设置监听器  
  27.         gallery.setOnItemClickListener(new OnItemClickListener() {  
  28.          @Override 
  29.          public void onItemClick(AdapterView<?>parent, View v, int position, long id) {  
  30.             Toast.makeText(MainActivity.this"点击了第"+(position+1)+"张图片", Toast.LENGTH_LONG).show();  
  31.          }  
  32.      });  
  33.     }  
  34. }  
  35.  
  36. class ImageAdapter extends BaseAdapter{  
  37.   //声明Context   
  38.   private Context context;  
  39.   //图片源数组  
  40.   private Integer[] imageInteger={  
  41.          R.drawable.pic1,  
  42.          R.drawable.pic2,  
  43.          R.drawable.pic3,  
  44.          R.drawable.pic4,  
  45.          R.drawable.pic5,  
  46.          R.drawable.pic6,  
  47.          R.drawable.pic7  
  48.   };  
  49.     
  50.   //声明 ImageAdapter  
  51.   public ImageAdapter(Context c){  
  52.      context = c;  
  53.   }  
  54.  
  55.   @Override 
  56.   //获取图片的个数  
  57.   public int getCount() {  
  58.      return imageInteger.length;  
  59.   }  
  60.  
  61.   @Override 
  62.   //获取图片在库中的位置  
  63.   public Object getItem(int position) {  
  64.  
  65.      return position;  
  66.   }  
  67.  
  68.   @Override 
  69.   //获取图片在库中的位置  
  70.   public long getItemId(int position) {  
  71.      // TODO Auto-generated method stub  
  72.      return position;  
  73.  }  
  74.  
  75.   @Override 
  76.   public View getView(int position, View convertView, ViewGroup parent) {  
  77.  
  78.      ImageView imageView = new ImageView(context);  
  79.      //给ImageView设置资源  
  80.      imageView.setImageResource(imageInteger[position]);  
  81.      //设置比例类型  
  82.      imageView.setScaleType(ImageView.ScaleType.FIT_XY);  
  83.      //设置布局 图片128x192显示  
  84.      imageView.setLayoutParams(new Gallery.LayoutParams(128192));  
  85.      return imageView;  
  86.   }  
  87. }  
  88.  
  89.  

main.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Gallery xmlns:android="http://schemas.android.com/apk/res/android"   
  3.       android:id="@+id/gallery"         
  4.       android:layout_width="fill_parent" 
  5.       android:layout_height="wrap_content" 
  6.       android:gravity="center_vertical" 
  7.       android:background="?android:galleryItemBackground" 
  8. /> 
  9.  

效果图:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页

相关内容