加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 教程 > 正文

Android开发教程:Gallery和GridView详解

发布时间:2021-12-18 13:48:25 所属栏目:教程 来源:互联网
导读:一.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息。Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果。 Gallery常用的XML属性 属性名称 描述 And

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

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读