Android Gallery控件使用教程
需积分: 13 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的用法对于创建动态、交互性强的界面至关重要。
2015-09-30 上传
2012-06-22 上传
2019-08-06 上传
2021-03-25 上传
2019-08-06 上传
2018-11-27 上传
2012-06-12 上传
2013-08-04 上传
2019-08-07 上传