Android 之 Gallery
1 在 xml 布局中添加 Gallery
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Gallery
- android:id="@+id/gallery"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
- </LinearLayout>
2 自定义 ImageAdapter
- package com.example.gallery;
- import java.util.List;
- import android.content.Context;
- import android.content.res.TypedArray;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.Gallery;
- import android.widget.ImageView;
- @SuppressWarnings("deprecation")
- public class ImageAdapter extends BaseAdapter {
- private Context context;
- private List<Integer> list;
- private TypedArray typedArray;
- private int item_background;
- public ImageAdapter(Context context ,List<Integer> list)
- {
- this.context=context;
- this.list=list;
- this.typedArray = context.obtainStyledAttributes(R.styleable.gallery_style);
- item_background=typedArray.getResourceId(R.styleable.gallery_style_android_galleryItemBackground, 0);
- typedArray.recycle();
- }
- @Override
- public int getCount() {
- return list.size();
- }
- @Override
- public Object getItem(int position) {
- return position;
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ImageView imageView = new ImageView(context);
- //设置显示的图片
- imageView.setImageResource(list.get(position));
- //设置伸缩规格
- imageView.setScaleType(ImageView.ScaleType.FIT_XY);
- //设置布局参数
- imageView.setLayoutParams(new Gallery.LayoutParams(150,100));
- //设置背景边框
- imageView.setBackgroundResource(item_background);
- return imageView;
- }
- }
3 每个 ImageView 的背景参数
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <declare-styleable name="gallery_style">
- <attr name="android:galleryItemBackground" />
- </declare-styleable>
- </resources>
4 在 MainActivity 中绑定数据与设置监听
- package com.example.gallery;
- import java.util.ArrayList;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.Gallery;
- import android.widget.Toast;
- @SuppressWarnings("deprecation")
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Gallery gallery=(Gallery)findViewById(R.id.gallery);
- ArrayList<Integer>list=new ArrayList<Integer>();
- list.add(R.drawable.img1);
- list.add(R.drawable.img2);
- list.add(R.drawable.img3);
- list.add(R.drawable.img4);
- list.add(R.drawable.img5);
- list.add(R.drawable.img6);
- list.add(R.drawable.img7);
- ImageAdapter adapter=new ImageAdapter(this,list);
- gallery.setAdapter(adapter);
- gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View v,int position, long id) {
- Toast.makeText(getApplicationContext(), "选择了: "+
- String.valueOf(position), Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- //这里不做响应
- }
- });
- }
- }
5 图片资源

6 结果展示

Android 之 Gallery的更多相关文章
- android 32 Gallery:横着滚动的列表
Gallery:横着滚动的列表 mainActivity.java package com.sxt.day05_01; import java.util.ArrayList; import java. ...
- Android 解决Gallery下ScrollView滑动事件冲突
在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义 ...
- android学习Gallery和ImageSwitch的使用
Gallery组件被称之为画廊,是一种横向浏览图片的列表,在使用android API 19 Platform 时会发现Gallery被画上了横线,表明谷歌已经不推荐使用该组件了, * @deprec ...
- Android之Gallery和Spinner-Android学习之旅(二十九)
Spinner简介 spinner是竖直方向展开一个列表供选择.和gallery都是继承了AbsSpinner,AbsSpinner继承了AdapterView,因此AdaptyerView的属性都可 ...
- android学习---Gallery画廊视图
Gallery与Spinner有共同父类:AbsPinner.说明Gallery与Spinner都是一个列表框. 它们之间的差别在于Spinner显示的是一个垂直的列表选择框,而Gallery显示的是 ...
- Android在Gallery中每次滑动只显示一页
import android.content.Context; import android.util.AttributeSet; import android.view.KeyEvent; impo ...
- android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器
为了使图片浏览器左右无限循环滑动 我们要自己定义gallery的adapter 假设要想自己定义adapter首先要了解这几个方法 @Override public int getCount() { ...
- Android 使用Gallery组件实现图片播放预览
Gallery(画廊)扩展了LayoutParams,以此提供可以容纳当前的转换信息和先前的位置转换信息的场所. Activity package com.app.test01; import com ...
- Android 从Gallery获取图片
本文主要介绍Android中从Gallery获取图片 设计项目布局 <LinearLayout xmlns:android="http://schemas.android.com/ap ...
随机推荐
- 5. openCV中常用函数学习
一.前言 经过两个星期的努力,一边学习,一边写代码,初步完成了毕业论文系统的界面和一些基本功能,主要包括:1 数据的读写和显示,及相关的基本操作(放大.缩小和移动):2 样本数据的选择:3 数据归一化 ...
- C#使用DirectoryEntry操作IIS创建网站和虚拟路径
原文:http://www.cnblogs.com/Aiooioo/archive/2011/05/30/cs-iis.html 在.Net中我们可以使用内置的类DirectoryEntry来承载II ...
- ios 异步多线程 获取数据
简介 iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch) 这三种编程方式 ...
- OpenSSl编译
1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC.2.下载安装Active ...
- 安卓tabhost和子Activity通信方法
发现很多同学在问这个问题 1个tabhost对应的类假设是T,假设包含2个子tab,每个是1个activity,假设叫a,b,对应的类假设是A和B 那么有这几个问题 1.a如何调用b的方法,或者说发送 ...
- 利用ICommand和ITool重写Arcengine中控件的事件
Arcengine窗体开发中,不同命令或者工具可能会触发同一控件的同一事件,这样会造成该事件中代码的混乱.以主窗体的AxMapcontrol控件为例,当开始画图时因为有很多种类型的Feature,所以 ...
- What is an http upgrade?
HTTP Upgrade is used to indicate a preference or requirement to switch to a different version of HTT ...
- TreeSet与HashSet的区别
Set是java中一个不包含重复元素的collection.更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素.正如其名称所暗示的, ...
- C++ Primer day 01
1.标准输入与输出 #include<iostream> int main(){ int v1,v2; std::cout<<"Enter two numbers:& ...
- DataTable类
DataTable是一个使用非常多的类,记得我在刚刚开始学习.Net的时候就已经了解并用过这个类,但如今再来看看,才发现这个类非常之复杂,复杂表现在哪些地方呢?主要是这个类与其他很多类都有关联,也就是 ...