- Xamarin 教程
- Xamarin - 主页
- Xamarin - 安装
- Xamarin - 首次应用
- Xamarin - 应用程序清单
- Xamarin - Android 资源
- Xamarin - Android 活动生命周期
- Xamarin - 权限
- Xamarin - 构建应用程序 GUI
- Xamarin - 菜单
- Xamarin - 布局
- Xamarin - Android 小部件
- Xamarin - Android 对话框
- Xamarin - 画廊
- Xamarin - Andriod 视图
- Xamarin - 多屏应用程序
- Xamarin - 部署您的应用程序
- Xamarin 有用资源
- Xamarin - 快速指南
- Xamarin - 有用的资源
- Xamarin - 讨论
Xamarin - 画廊
图库是一种视图,用于显示水平可滚动列表中的项目。然后所选项目将显示在中心。在此示例中,您将创建一个包含可水平滚动的图像的图库。单击图像时将显示所选图像的编号。
首先,创建一个新项目并为其命名,例如Gallery App Tutorial。在开始编码之前,将 7 张图像粘贴到资源 /drawable 文件夹中。导航到资源文件夹下的main.axml以及线性布局标签之间的库。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#d3d3d3"> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" /> </LinearLayout>
创建一个名为ImageAdapter的新类。此类将用于将图像绑定到我们上面创建的图库。
第一步是添加一个包含用于存储字段的上下文cont的类。
public class ImageAdapter : BaseAdapter { Context cont; public ImageAdapter(Context ct) { cont = ct; } }
接下来,我们计算包含图像的数组列表并返回其大小。
public override int Count { get { return imageArraylist.Length; } }
在下一步中,我们获取该项目的位置。以下代码演示了如何执行此操作。
public override Java.Lang.Object GetItem(int position) { return null; } public override long GetItemId(int position) { return 0; }
在下一步中,我们为适配器引用的项目创建一个图像视图。
public override View GetView(int position,View convertView, ViewGroup parent) { ImageView img = new ImageView(cont); img.SetImageResource(imageArraylist[position]); img.SetScaleType(ImageView.ScaleType.FitXy); img.LayoutParameters = new Gallery.LayoutParams(200, 100); return img; }
在最后一步中,我们创建对resources.drawable文件夹中添加的图像的引用。为此,我们创建一个数组来保存图像集合。以下代码解释了如何执行此操作。
int[] imageArraylist = { Resource.Drawable.img1, Resource.Drawable.img2, Resource.Drawable.img3, Resource.Drawable.img4, Resource.Drawable.img5, Resource.Drawable.img6, }; }
接下来,我们进入mainActivity.cs并在 OnCreate() 方法下插入以下代码。
Gallery myGallery = (Gallery)FindViewById<Gallery>(Resource.Id.gallery); myGallery.Adapter = new ImageAdapter(this); myGallery.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs args) { Toast.MakeText(this, args.Position.ToString(), ToastLength.Short).Show(); }
最后,构建并运行您的应用程序以查看输出。