一.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
- package com.android.gallerydemo;
- import android.app.Activity;
- import android.content.Context;
- 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.Gallery;
- import android.widget.ImageView;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private Gallery gallery;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- gallery = (Gallery)findViewById(R.id.gallery);
- //設置圖片適配器
- gallery.setAdapter(new ImageAdapter(this));
- //設置監聽器
- gallery.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?>parent, View v, int position, long id) {
- Toast.makeText(MainActivity.this, "點擊了第"+(position+1)+"張圖片", Toast.LENGTH_LONG).show();
- }
- });
- }
- }
- class ImageAdapter extends BaseAdapter{
- //聲明Context
- private Context context;
- //圖片源數組
- private Integer[] imageInteger={
- R.drawable.pic1,
- R.drawable.pic2,
- R.drawable.pic3,
- R.drawable.pic4,
- R.drawable.pic5,
- R.drawable.pic6,
- R.drawable.pic7
- };
- //聲明 ImageAdapter
- public ImageAdapter(Context c){
- context = c;
- }
- @Override
- //獲取圖片的個數
- public int getCount() {
- return imageInteger.length;
- }
- @Override
- //獲取圖片在庫中的位置
- public Object getItem(int position) {
- return position;
- }
- @Override
- //獲取圖片在庫中的位置
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ImageView imageView = new ImageView(context);
- //給ImageView設置資源
- imageView.setImageResource(imageInteger[position]);
- //設置比例類型
- imageView.setScaleType(ImageView.ScaleType.FIT_XY);
- //設置布局 圖片128x192顯示
- imageView.setLayoutParams(new Gallery.LayoutParams(128, 192));
- return imageView;
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <Gallery xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/gallery"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:background="?android:galleryItemBackground"
- />
效果圖:
650) this.width=650;" height=120>