分类:C#、Android、VS2015;

创建日期:2016-02-07

一、简介

图库(也叫画廊)是一个布局小部件,用于在可水平滚动的列表中显示每一副图片,当前所选的图片将置于视图的中心。

注意:Android已经弃用了这个小部件,弃用的原因是用Galery实现的效率比较低,官方的建议是改为用HorizontalScrollView来替代这个小部件。但是,目前手机上的图片浏览功能很多都是用Galery来实现的,如果你仍然喜欢这个小部件,也可以在高版本的项目中继续使用它。

二、示例8--Demo08Gallery

1、运行截图

在模拟器中用鼠标左右拖放图片观察效果。

2、添加Demo08Gallery.axml文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:gravity="center_vertical">
  7. <Gallery
  8. android:id="@+id/gallery"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content" />
  11. </LinearLayout>

保存文件,然后单击解决方案资源管理器上方的【刷新】按钮。

3、添加Demo08Gallery.cs文件

  1. using System;
  2. using Android.App;
  3. using Android.Content;
  4. using Android.OS;
  5. using Android.Views;
  6. using Android.Widget;
  7. using Java.Lang;
  8.  
  9. namespace ch05demos.SrcActivity
  10. {
  11. [Activity(Label = "Demo08Gallery")]
  12. public class Demo08Gallery : Activity
  13. {
  14. protected override void OnCreate(Bundle savedInstanceState)
  15. {
  16. base.OnCreate(savedInstanceState);
  17. SetContentView(Resource.Layout.demo08_Gallery);
  18. var g = FindViewById<Gallery>(Resource.Id.gallery);
  19. g.Adapter = new ImageAdapter(this)
  20. {
  21. CurrentWidth = ,
  22. CurrentHeight =
  23. };
  24. g.ItemClick += Gallery_ItemClick;
  25. }
  26.  
  27. private void Gallery_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
  28. {
  29. Toast.MakeText(this, e.Position.ToString(), ToastLength.Short).Show();
  30. }
  31. }
  32. public class ImageAdapter : BaseAdapter
  33. {
  34. private Context context;
  35. private int[] thumbIds = {
  36. Resource.Drawable.sample_1,
  37. Resource.Drawable.sample_2,
  38. Resource.Drawable.sample_3,
  39. Resource.Drawable.sample_4,
  40. Resource.Drawable.sample_5,
  41. Resource.Drawable.sample_6,
  42. Resource.Drawable.sample_7
  43. };
  44.  
  45. //默认值为500(这是C# 6.0新增的功能,仅VS2015可以这样用)
  46. public int CurrentWidth { get; set; } = ;
  47. public int CurrentHeight { get; set; } = ;
  48.  
  49. public ImageAdapter(Context c)
  50. {
  51. context = c;
  52. }
  53.  
  54. public override int Count
  55. {
  56. get { return thumbIds.Length; }
  57. }
  58.  
  59. public override View GetView(int position, View convertView, ViewGroup parent)
  60. {
  61. ImageView i = new ImageView(context);
  62. i.SetImageResource(thumbIds[position]);
  63. i.LayoutParameters = new Gallery.LayoutParams(, );
  64. i.SetScaleType(ImageView.ScaleType.FitXy);
  65. return i;
  66. }
  67.  
  68. public override long GetItemId(int position)
  69. {
  70. return ;
  71. }
  72.  
  73. public override Java.Lang.Object GetItem(int position)
  74. {
  75. return null;
  76. }
  77. }
  78. }

运行。

【Android】5.7 图片库(Galery)的更多相关文章

  1. Android之Fresco(facebook的强大Android图片加载的框架)

    Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络.本地存储和本地资源中加载图片.其中的Drawees可以显示占位符,直到图片加载完成.而当图片从屏幕 ...

  2. Android图片下载以及缓存框架

    实际开发中进行图片下载以及缓存的框架 介绍一下开发中常见图片加载框架的使用和对比一下优缺点. 1.Picasso 框架 在Android中开发,常需要从远程获取图片并显示在客户端,当然我们可以使用原生 ...

  3. Android 图片处理之 Fresco

    一.关于 Fresco github: https://github.com/facebook/fresco API: http://www.fresco-cn.org/javadoc/referen ...

  4. 96、facebook Fresco框架库源使用基础

    开源项目链接 facebook Fresco仓库:git clone https://github.com/facebook/fresco facebook Fresco主页:“>http:// ...

  5. Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide图片缓存库的联系与区别

    Universal-Image-Loader,android-Volley,Picasso.Fresco和Glide五大Android开源组件加载网络图片比较 在Android中的加载网络图片是一件十 ...

  6. 96、facebook Fresco框架库源使用(转载)

    各个属性详情:http://blog.csdn.net/y1scp/article/details/49245535 开源项目链接 facebook Fresco仓库:git clone https: ...

  7. Fresco,Facbook强大的图片加载框架

    项目git地址:https://github.com/facebook/fresco Fresco是 facebook推出的一款强大的图片加载的框架:主要有Image Pipeline和Drawees ...

  8. FaceBook开源库Fresco

    讨论学习使用 关于 Fresco Fresco 是一个强大的图片载入组件. Fresco 中设计有一个叫做 image pipeline 的模块.它负责从网络.从本地文件系统.本地资源载入图片. 为了 ...

  9. Android 圆形图片库 CircleImageView

    高仿微信朋友圈 10s 视频裁剪 引语 晚上好,我是猫咪,我的公众号「程序媛猫咪」会推荐 GitHub 上好玩的项目,挖掘开源的价值,欢迎关注我. <Android 图片裁剪库 uCrop> ...

随机推荐

  1. js条件语句之职责链数组

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Linux操作系统启动界面(字符or图形界面)的设置及切换方法

    安装完Linux操作系统后,默认是从图形界面启动的.那么如何使得系统从字符界面启动呢? 打开一个命令终端: #vim /etc/inittab 修改 id::initdefault: 为 id::in ...

  3. JDK目录结构和文件作用介绍

    要想深入了解Java必须对JDK的组成, 本文对JDK6里的目录做了基本的介绍,主要还是讲解了下JDK里的各种可执行程序或工具的用途Java(TM) 有两个平台 JRE 运行平台,包括Java虚拟机, ...

  4. js中移除空白节点

    //移除空白节点,空白节点的类型是3 function removeWhiteNode(node) {     for (var i = 0; i < node.childNodes.lengt ...

  5. maven profiles、filters、resources学习笔记 及 常用 plugin demo

    这里只记了学习以下博客后,自己做的一个总结. 来源:http://blog.csdn.net/fengchao2016/article/details/72726101 profiles定义了一些不同 ...

  6. [Table] pm_result

    ', '20160501.17:30 - 20160501.17:45', '2.1', '3.1', '3.1', '3.11', '3.44', '12.30', null, null, null ...

  7. Timer与AlarmManager的差别

    线程 通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可执行)状态.但此时并没有执行,它须要CPU时间片. 一旦得到CPU时间片.就会执行run()方法. run()的 ...

  8. PHP-FastCGI详解

    一.什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和 ...

  9. C-常用字符串操作函数详解

    //使用字符串操作应时刻注意字符串或者数组长度!!避免溢出!! 1. size_t strlen(char const *str); //计算字符串长度, 注意返回size_t类型的值, 即unsig ...

  10. CSS:使用CSS3将一个div水平和垂直居中显示

    使用css3将一个div水平和垂直居中显示 方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 代码两个关键点:1.上下左右均0位置定位: 2.margin: au ...