歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發教程:Gallery和GridView淺析

一.Gallery的簡介

    Gallery(畫廊)是一個鎖定中心條目並且擁有水平滾動列表的視圖,一般用來浏覽圖片,並且可以響應事件顯示信息。Gallery還可以和ImageSwitcher組件結合使用來實現一個通過縮略圖來浏覽圖片的效果。

Gallery常用的XML屬性

屬性名稱

描述

Android:animationDuration

設置布局變化時動畫的轉換所需的時間(毫秒級)。僅在動畫開始時計時。該值必須是整數,比如:100。

android:gravity

指定在對象的X和Y軸上如何放置內容。指定一下常量中的一個或多個(使用 “|”分割)

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(128, 192));  
  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.  

效果圖:

650) this.width=650;" height=120>

Copyright © Linux教程網 All Rights Reserved