我们有时候在iPhone手机上或者Windows上面看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据你的点击或者触摸触发其他事件响应。同样的,在Android中也提供这这种实现,这就是通过Gallery在UI上实现缩略图浏览器。
我们来看看Gallery是如何来实现的,先把控件从布局文件中声明,只需知道ID为gallery。
Gallery gallery = (Gallery) findViewById(R.id.gallery);
一般情况下,我们在Android中要用到类似这种图片容器的控件,都需要为它指定一个适配器,让它可以把内容按照我们定义的方式来显示,因此我们来给它加一个适配器,至于这个适配器如何实现,后面接着来操作,这里只需知道这个适配器的类叫ImageAdapter。 gallery.setAdapter(new ImageAdapter(this));
复制代码接下来就是重头戏了,适配器可以说是最重要的,我们来看看如何做?到这里似乎还缺少一些很重要的东西?什么东西呢?我们需要显示的是图片,那么图片我们当然首先要准备好,这里我们准备了5张图片(存放drawable文件夹中),我们用其IDs做索引,以便在适配器中使用。
private Integer[] mps = {
R.drawable.icon1,
R.drawable.icon2,
R.drawable.icon3,
R.drawable.icon4,
R.drawable.icon5
};
OK,这里将开始定义适配器了,通过继承BaseAdapter用以实现的适配器。
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context context) {
mContext = context;
}
public int getCount() {
return mps.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView image = new ImageView(mContext);
image.setImageResource(mps[position]);
image.setAdjustViewBounds(true);
image.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
return image;
}
}
至此,整个Gallery基本都是先完成了,我们还需要为它添加一个监听器,否则这个缩略图浏览器就仅仅只可以看不能用了。
gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
//这里不做响应
}
});
分享到:
相关推荐
在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,类似于iOS中的Carousel或者Pinterest的布局。`Gallery`控件基于`AbsListView`,提供了水平方向上的滚动浏览体验。...
在Android开发中,`Gallery`组件是一个非常有用的视图,它允许用户通过左右滑动来浏览一系列的项目,常用于图片或选项的选择。本篇文章将深入解析`Gallery`组件的基本使用,以及与其相关的`ImageSwitcher`组件。 ...
在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...
在Android 4.0 Gallery源码中,可以看到使用了AsyncTask或者IntentService进行异步操作,防止主线程阻塞,提高应用响应速度。 6. **UI设计与动画效果** Gallery的界面设计简洁且交互流畅,利用Animation类和...
Gallery2是一个针对Android平台的开源图片浏览应用,其源码为我们提供了一个深入理解Android系统中图片展示、手势操作以及图片库集成的实例。通过分析这个项目,我们可以学习到许多关于Android开发的重要知识点。 ...
尽管如此,理解`Gallery`的使用仍然对了解Android UI发展史和兼容旧项目有所帮助。 `Gallery`控件是`AbsSpinner`的一个子类,它继承了`AdapterView`的特性,可以绑定数据源并显示来自适配器的数据。`Gallery`的基本...
在Android 4.0的Gallery源码中,你需要查看GalleryAdapter类,它实现了BaseAdapter接口,负责将数据转化为可以在Gallery中显示的View。Adapter的主要方法包括: - `getView()`:此方法为每个项创建或复用一个View,...
在Android开发中,`Gallery`组件是Android早期版本(API level 16及以下)提供的一种可以水平滑动浏览图片或项目的控件。它允许用户通过手指滑动来浏览一串连续的视图,通常用于展示照片或者进行选择操作。然而,...
这个"Android Gallery小例子"旨在帮助开发者理解如何在旧版Android系统中使用`Gallery`控件创建一个图片浏览应用。虽然`Gallery`已过时,但学习其工作原理对于理解Android的Adapter模式和视图滚动机制仍有所帮助。
在这个项目中,`Android 使用Gallery_tabhost实现标签效果图源码.rar`是一个示例,展示了如何结合这两个组件来创建一个动态、交互式的标签切换效果。 `Gallery`是Android提供的一个水平滚动视图,它允许用户通过...
在Android系统中,Gallery是一个用于展示图片和视频的视图组件,它允许用户通过水平滑动来浏览多媒体内容。在Android 4.0(API级别14)版本中,Gallery已经被废弃,取而代之的是更强大的GridView和RecyclerView。...
在提供的博客链接中(http://blog.csdn.net/csdnyuandaimaxuexi/article/details/48809349),作者详细介绍了如何在实际项目中使用和自定义Gallery控件,包括图片加载、点击事件处理和滚动效果的调整。通过阅读这篇...
在Android开发中,"Android照片墙Gallery [源码]"是一个典型的项目,用于展示用户的照片集,类似于手机系统自带的相册应用。这个程序的核心功能是加载和显示图片,同时可能包含一些交互效果,如滑动浏览、缩放等。...
Gallery3D是Android平台上的一款3D图片浏览应用,它展示了Android系统中3D图形处理和图像展示的强大能力。这个应用的源码提供了深入理解Android图形库、线程管理、数据加载优化以及用户交互设计的宝贵机会。以下是对...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平轴上滑动浏览多个项目,常用于实现图片浏览或者选项选择。在本主题中,我们将深入探讨如何利用`Gallery`来实现图片滑动,并且在选中图片时...
`Gallery`在早期版本的Android API中被广泛使用,但在API 16之后已被弃用,取而代之的是更现代的`RecyclerView`或`ViewPager`。尽管如此,理解`Gallery`的工作原理和用法仍然对学习Android的历史和迁移旧代码至新...
4. **适配器中使用自定义视图**:最后,你需要在`Adapter`的`getView()`方法中返回这个自定义`View`,并确保为每个`View`传递正确的`Bitmap`。 ```java @Override public View getView(int position, View ...
在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户通过左右滑动来浏览和选择项目,常用于图片浏览、菜单选择等场景。在这个特定的案例中,我们关注的是如何实现图片的自动切换功能,这在创建图片轮播...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目之间进行水平滑动选择,常用于图像浏览或者选项选择等场景。本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键...
在本篇文章中,我们将深入探讨如何在Android应用中使用`Gallery`组件来实现类似相册的功能。 首先,让我们了解`Gallery`的基本用法。`Gallery`继承自`AbsSpinner`,它是一个水平方向的`ViewGroup`,通常用于展示一...