xamarin android——数据绑定到控件(二)
本示例为通过媒体内容提供器获取本机中的图片显示在Gallery中。
活动中简单的初始化代码
private void InitGallery()
{
Gallery gallery = FindViewById<Gallery> (Resource.Id.gallery);
gallery.Adapter = new ImageAdapter (this);
}
ImageAdapter 类为自己定义的适配器,继承BaseAdapter类,其中核心代码为GetView方法。
BaseAdapter为抽象类必须实现指定方法,右键BaseAdapter类,选择Implement Abstract Class,添加要实现的方法。
ImageAdapter 的代码实现
public class ImageAdapter:BaseAdapter
{
private Context context; public ImageAdapter(Context context)
{
this.context = context;
} #region implemented abstract members of BaseAdapter
public override Java.Lang.Object GetItem (int position)
{
ImageCursor.MoveToPosition (position);
return ImageCursor.GetString ();
}
public override long GetItemId (int position)
{
return position;
}
public override View GetView (int position, View convertView, ViewGroup parent)
{
//避免不断的销毁和创建新视图
if (convertView == null) {
ImageView imageView = new ImageView (context);
ImageCursor.MoveToPosition (position);
var imageUrl = ImageCursor.GetString ();
Console.WriteLine (imageUrl);
//根据输出判断 MediaStore.Images.Media.InterfaceConst.Data 查询结果为图片路径
//imageView.SetImageURI (Android.Net.Uri.WithAppendedPath(MediaStore.Images.Media.ExternalContentUri,imageID));
imageView.SetImageURI (Android.Net.Uri.Parse(imageUrl));
imageView.SetScaleType (ImageView.ScaleType.FitCenter);
return imageView;
} else {
return convertView as ImageView;
}
}
public override int Count {
get {
return ImageCursor.Count;
}
}
#endregion private Android.Database.ICursor imageCursor;
public Android.Database.ICursor ImageCursor {
get{
if (imageCursor==null) {
imageCursor = GetImageCursor ();
}
return imageCursor;
}
set{ imageCursor = value; }
} //查询本机图片
private Android.Database.ICursor GetImageCursor(){
return (context as Activity).ManagedQuery (MediaStore.Images.Media.ExternalContentUri,
new string[] {MediaStore.Images.Media.InterfaceConsts.Data},null,null,null);
}
}
注意:一定要保证本机或者模拟器中存在图片文件,不然会报出No entry for content的异常。
此外学的过程中了解到一个Xamarin组件,地址:http://components.xamarin.com/view/xamarin.mobile,不知道效果怎么要。
xamarin android——数据绑定到控件(二)的更多相关文章
- xamarin android——数据绑定到控件(四)
本文为通过自定义列表适配器定义ListView,以上文为基础,基于ListActivity. 定义列表项布局,包含一个图片显示,标题和描述 <LinearLayout xmlns:android ...
- xamarin android——数据绑定到控件(三)
如果当前活动中,只存在一个listview视图,可以借助ListActivity快速的实现一个列表,即当前Activity继承ListActivity.在OnCreate方法中简单的两行代码,就可以创 ...
- xamarin android——数据绑定到控件(一)
mono for android 中光标由ICursor 接口标识,该接口公开了操作结果数据集的所有方法.光标的使用非常消耗系统资源,所以不使用时应该光比光标.可以通过StartManagingCur ...
- 安卓控件 仪表盘控件 柱状图控件 曲线控件 xamarin.android 分类器 瓶子控件 报警控件 水箱控件 进度条控件等
本篇博客主要介绍一个控件库,HslControls.dll 的界面,这个控件库支持winform,winform的参考另一篇文章:https://www.cnblogs.com/dathlin/p/1 ...
- Xamarin.android 重写axml控件
https://www.cnblogs.com/lonelyxmas/p/5632694.html <Laco: 用来用引指定的控件 android:layout_widt ...
- Xamarin.Android DatePickerFragment 日期控件
MainActivity 代码: public class MainActivity : Activity { TextView _dateDisplay; Button _dateSelectBut ...
- xamarin.android 给View控件 添加数字提醒效果-BadgeView
本文代码从java项目移植到.net项目 java开源项目:https://github.com/jgilfelt/android-viewbadger using System; using S ...
- [置顶] Android常用适配器控件
Android常用适配器控件 列表控件用于显示数据集合,Android不是使用一种类型的控件管理显示和数据,而是将这两项功能分布用列表控件和适配器来实现.列表控件扩展了android.widget.A ...
- Android 中常见控件的介绍和使用
1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...
随机推荐
- ios开发——实用技术篇Swift篇&加速计和陀螺仪
加速计和陀螺仪 //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnim ...
- mysql升级小结和mysql_upgrade的用途
http://blog.itpub.net/15480802/viewspace-1412259/ mysql升级 1 升级方式 分为In-place和out-of-place,前者直接覆盖当前版本, ...
- xtrabackup原理0
- Python Generators(生成器)--yield
参考:http://blog.csdn.net/scelong/article/details/6969276 Python生成器 什么是python生成器,意思是带有一个yield语句的函数,既然它 ...
- SQL用法总结
1.创建数据库语句 create table persons( 'id' INT NOT NULL AUTO_INCREMENT, ) NOT NULL, ) NOT NULL, PRIMARY KE ...
- [Java,MVC] SpringMVC+Spring+hibernate 框架
转自:http://my.oschina.net/Thinkeryjgfn/blog/158951 1.准备的jar包以及配置文件如下: 2.新建一个JAVA web项目 3.建好以后出现以上包结构即 ...
- C# WinForm 中ComboBox数据绑定的问题 (转)
来自:http://blog.sina.com.cn/s/blog_5fb9e26301013wga.html C# WinForm 中ComboBox数据绑定的问题 怎样让WinForm中的Comb ...
- Syntax highlighter for CKEditor
http://www.cnblogs.com/moozi/archive/2010/01/06/1640034.html
- linux安装
1.rpm: • RPM是软件包管理工具,是Redhat Package Manager的缩写,最早由redhat公司引入的,现在已经成为公认的行业标准了.• 什么是package• 简单地说就是归档 ...
- HDU 1016 Prime Ring Problem (DFS)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...