Android Gallery控件使用教程

需积分: 13 7 下载量 135 浏览量 更新于2024-07-31 收藏 146KB DOC 举报
“Android GUI19:Gallery常用技巧收藏” 在Android开发中,Gallery是一个非常有用的控件,尤其在展示图片或水平滚动内容时。Gallery属于Android视图层次结构的一部分,它是AdapterView的子类,而AdapterView又是ViewGroup的子类,ViewGroup本身则是View的派生类。这个控件的主要功能是提供一个居中锁定、可以水平滚动的项目列表,用户可以通过滑动来浏览不同的条目。 官方对Gallery的描述是:“一种显示项目的视图,以中心锁定的水平滚动列表形式呈现。”这意味着Gallery会保持用户点击的项目始终位于控件的中央,同时允许用户水平方向上左右滑动来查看更多的内容。通常,Gallery被用来展示图片集,但理论上它也能够用于显示其他类型的数据,只要适配器能正确处理这些数据。 为了演示如何使用Gallery,我们可以按照以下步骤创建一个简单的示例: 1. 首先,在布局文件(如main.xml)中添加一个Gallery组件。在这个例子中,我们将其设置为填充父容器宽度,高度则根据内容自动调整: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> ``` 2. 接着,我们需要准备一些图片资源。在这个示例中,我们将15张图片放入res/drawable-mdpi目录,并为它们命名,以便适配器识别。这些图片可以自由选择,只要确保它们的格式和尺寸符合项目需求。 3. 最后,创建一个自定义的Adapter类,例如ImageAdapter,让它继承自BaseAdapter。Adapter是连接数据源和视图的关键,它负责将数据转换为可显示的视图项。ImageAdapter的代码可能包括如下内容: ```java package com.pat.gui; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context context; public ImageAdapter(Context c) { context = c; } // 返回数据集的大小 @Override public int getCount() { return 15; // 图片的数量 } // 获取指定位置的项 @Override public Object getItem(int position) { return position; } // 获取指定位置项的ID @Override public long getItemId(int position) { return position; } // 创建并返回新的View来显示每个项 @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // 如果视图为空,创建一个新的 imageView = new ImageView(context); imageView.setLayoutParams(new Gallery.LayoutParams(200, 200)); // 设置图片的宽度和高度 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); // 设置图片缩放模式 } else { imageView = (ImageView) convertView; // 重用已存在的视图 } imageView.setImageResource(getResourceIdByPosition(position)); // 根据位置加载图片资源 return imageView; } // 根据位置获取资源ID private int getResourceIdByPosition(int position) { // 这里需要实现根据position获取对应的图片资源ID } } ``` 在`getView()`方法中,我们创建了一个ImageView,并设置了其参数,然后根据位置加载相应的图片资源。`getResourceIdByPosition()`方法需要根据实际的图片命名规则来实现,以正确地从资源ID中获取图片。 完成以上步骤后,你需要在Activity中实例化Gallery,并为其设置适配器,这样就能在运行时看到一个可以滚动的图片画廊了。 ```java Gallery gallery = (Gallery) findViewById(R.id.gallery); gallery.setAdapter(new ImageAdapter(this)); ``` 这个简单的例子展示了如何使用Gallery控件以及自定义Adapter来展示图片。实际上,Gallery还可以配合各种触摸事件监听器,实现更丰富的交互功能,比如图片预览、点击回调等。同时,Adapter可以根据实际需求进行扩展,支持更多类型的数据展示。在实际开发中,理解并掌握Gallery的用法对于创建动态、交互性强的界面至关重要。