歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程:Gallery和GridView淺析

Android開發教程:Gallery和GridView淺析

日期:2017/3/1 10:36:39   编辑:Linux編程

一.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. import android.app.Activity;
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.AdapterView;
  8. import android.widget.AdapterView.OnItemClickListener;
  9. import android.widget.BaseAdapter;
  10. import android.widget.Gallery;
  11. import android.widget.ImageView;
  12. import android.widget.Toast;
  13. public class MainActivity extends Activity {
  14. private Gallery gallery;
  15. @Override
  16. public void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main);
  19. gallery = (Gallery)findViewById(R.id.gallery);
  20. //設置圖片適配器
  21. gallery.setAdapter(new ImageAdapter(this));
  22. //設置監聽器
  23. gallery.setOnItemClickListener(new OnItemClickListener() {
  24. @Override
  25. public void onItemClick(AdapterView<?>parent, View v, int position, long id) {
  26. Toast.makeText(MainActivity.this, "點擊了第"+(position+1)+"張圖片", Toast.LENGTH_LONG).show();
  27. }
  28. });
  29. }
  30. }
  31. class ImageAdapter extends BaseAdapter{
  32. //聲明Context
  33. private Context context;
  34. //圖片源數組
  35. private Integer[] imageInteger={
  36. R.drawable.pic1,
  37. R.drawable.pic2,
  38. R.drawable.pic3,
  39. R.drawable.pic4,
  40. R.drawable.pic5,
  41. R.drawable.pic6,
  42. R.drawable.pic7
  43. };
  44. //聲明 ImageAdapter
  45. public ImageAdapter(Context c){
  46. context = c;
  47. }
  48. @Override
  49. //獲取圖片的個數
  50. public int getCount() {
  51. return imageInteger.length;
  52. }
  53. @Override
  54. //獲取圖片在庫中的位置
  55. public Object getItem(int position) {
  56. return position;
  57. }
  58. @Override
  59. //獲取圖片在庫中的位置
  60. public long getItemId(int position) {
  61. // TODO Auto-generated method stub
  62. return position;
  63. }
  64. @Override
  65. public View getView(int position, View convertView, ViewGroup parent) {
  66. ImageView imageView = new ImageView(context);
  67. //給ImageView設置資源
  68. imageView.setImageResource(imageInteger[position]);
  69. //設置比例類型
  70. imageView.setScaleType(ImageView.ScaleType.FIT_XY);
  71. //設置布局 圖片128x192顯示
  72. imageView.setLayoutParams(new Gallery.LayoutParams(128, 192));
  73. return imageView;
  74. }
  75. }

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. />

效果圖:

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

Copyright © Linux教程網 All Rights Reserved