- 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 - 图库
画廊是一种视图类型,用于在可水平滚动的列表中显示项目。然后将所选项目显示在中心。在此示例中,你将创建一个包含水平可滚动图像的画廊。单击图像时,将显示所选图像的编号。
首先,创建一个新项目并为其命名,例如画廊应用程序教程。在开始编写代码之前,将 7 张图像粘贴到资源/可绘制文件夹中。导航到resources 文件夹下的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;
}
}
在下一步中,我们获取项目的 position。以下代码演示了如何执行此操作。
public override Java.Lang.Object GetItem(int position) {
return null;
}
public override long GetItemId(int position) {
return 0;
}
在下一步中,我们为适配器引用的项目创建一个imageview。
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();
}
最后,构建并运行应用程序以查看输出。
广告