在网上找了好久似乎都没有关于这方面的(可能是自己的信息量太小吧),于是自己来填补这个漏洞吧。
常见的方法莫过于自己定义一个数组,用以存储图片的引用,如:
1 |
private Integer[] pictures = { |
然后再将此数组加入到适配器中。但是想要显示自己的图片,这怎么行。。下面来介绍我自己的方法
首先,你得知道你图片的存储路径,将这些你将要显示的图片的路径存放于一个arraylist里面
1 |
ArrayList<String> PictureNameList = new ArrayList<String>(); |
2 |
PicureNameList.add("路径"); |
然后获取gallery实例,
1 |
Gallery g = (Gallery) findViewById(R.id.mygallery); |
相应的mygallery.xml
01 |
<?xml version="1.0" encoding="utf-8"?> |
02 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
03 |
android:layout_width="fill_parent" |
04 |
android:layout_height="fill_parent" |
05 |
android:orientation="vertical" |
10 |
android:id="@+id/mygallery" |
11 |
android:layout_width="fill_parent" |
12 |
android:layout_height="wrap_content" |
13 |
android:layout_x="12px" |
14 |
android:layout_y="106px" |
并加入到适配器里面
01 |
g.setAdapter(new ImageAdapter(this,PictureNameList)); |
03 |
/*设定一个itemclickListener事件*/ |
04 |
g.setOnItemClickListener(new OnItemClickListener() |
06 |
public void onItemClick(AdapterView<?> parent, |
07 |
View v, int position, long id) |
10 |
//这里就根据你自己的需要去做一些功能的展示 |
下面就来看这个ImageAdaper实现
01 |
public class ImageAdapter extends BaseAdapter |
04 |
int mGalleryItemBackground; |
05 |
private Context mContext; |
06 |
private List<String> lis; |
09 |
public ImageAdapter(Context c,List<String> li) |
13 |
/* 使用res/values/attrs.xml中的<declare-styleable>定义 |
15 |
TypedArray a = obtainStyledAttributes(R.styleable.Gallery); |
16 |
/*取得Gallery属性的Index id*/ |
17 |
mGalleryItemBackground = a.getResourceId( |
18 |
R.styleable.Gallery_android_galleryItemBackground, 0); |
19 |
/*让对象的styleable属性能够反复使用*/ |
23 |
/*几定要重写的方法getCount,传回图片数目*/ |
29 |
/*一定要重写的方法getItem,传回position*/ |
30 |
public Object getItem(int position) |
35 |
/*一定要重写的方法getItemId,传并position*/ |
36 |
public long getItemId(int position) |
41 |
/*几定要重写的方法getView,传并几View对象*/ |
42 |
public View getView(int position, View convertView, |
46 |
ImageView i = new ImageView(mContext); |
48 |
Bitmap bm = BitmapFactory.decodeFile(lis. |
49 |
get(position).toString()); |
52 |
i.setScaleType(ImageView.ScaleType.FIT_XY); |
54 |
i.setLayoutParams(new Gallery.LayoutParams(200, 120)); |
56 |
i.setBackgroundResource(mGalleryItemBackground); |
其中只需要关注最后一个getView函数,这个函数的关键就在于其中两行
1 |
Bitmap bm = BitmapFactory.decodeFile(lis. |
2 |
get(position).toString()); |
获取图片并显示图片。ok!
记得在values文件下里面添加一个叫做attrs.xml的文件
1 |
<?xml version="1.0" encoding="utf-8"?> |
3 |
<declare-styleable name="Gallery"> |
4 |
<attr name="android:galleryItemBackground" /> |
最后还要记得在配置文件中添加权限
1 |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
2 |
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> |
源码下载
- 页面中直接显示FTP中的图片
页面中直接显示FTP中的图片 FTP根目录下有一张图片,如下 第一步: 通过如下格式,在浏览器上输入路径,确定可看到图片 ftp://root:root@127.0.0.1/111.png ftp:/ ...
- Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/1873 ...
- Android GridView 一行显示数据(包括图片和文本),解决的办法是计算数据占该行的宽度是多少
最近在做图片的浏览功能,开始是使用Gallery做,但是,达不到我想要的效果,关于使用Gallery显示缩略图的缺点和优点,不在详述了.以下是一个完整的Demo代码,注意我的模拟器是640*960. ...
- Android总结之打开手机相册获取图片
上一篇,总结了如何打开照相机获取图片,详情请看>>>> 这篇将总结如何打开手机存储(相册)来获取手机上的图片. 打开相册 在需要这个功能的类中,我们可以自定义一个方法openA ...
- android高仿微信UI点击头像显示大图片效果, Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果
http://www.cnblogs.com/Jaylong/archive/2012/09/27/androidUI.html http://blog.csdn.net/xiaanming/arti ...
- appium 【已解决】Android,每次启动手机中都会安装Appium settings和Unclock的方法
环境介绍: 1.appium版本:1.4.16.1 2.真机运行 实现结果: 运行appium第一次运行则安装Appium settings和Unclock的apk,再次之后的运行则无需手动卸载,再次 ...
- 怎样扩展EasyUI在页面中马上显示选中的本地图片
在编写前台页面的时候,有时须要将选中的图片夹杂着其它信息一起上传到服务端,在选着本地图片的时候,为了获得更好的效果,须要将该图片显示在页面上. 最初思路有两个.详细例如以下: 1.获取选中文件的二进制 ...
- Android 推断程序在手机中是否是活动状态或者正在执行状态
沈阳斌子在今天项目需求上碰到个这种问题,在Service中须要推断当前的程序是否是活动状态,换句话说也就是说后台跑的服务中有业务需求检測当前程序是否是该服务的程序 这样好让点击推送通知时跳转到不同的页 ...
- C#中 分层 显示数据库中多表的数据信息
如下图,要实现将三个表中的内容加载到同一个窗体中,该怎么来实现呢? 要实现上面的查询结果,我们就要从Student表中拿到学生姓名,从Subject表中拿到科目名称,从StudentResult表中拿 ...
随机推荐
- SQL Server 对dbcc checkdb的优化
方法 1. 在运行dbcc checkdb前对数据库进行快照(事务是一致的),dbcc 对快照进行检测,dbcc完成后删除快照. 做快照的目的是为了不要让dbcc 申请太多的锁,从这里可以看出dbcc ...
- UDP包的大小与MTU
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对像ICQ一类的发送聊天消息的情况作分 ...
- PHP - Mysql数据库备份类
使用方法: require_once("backdata.class.php"); $link =@mysql_connect("localhost",&quo ...
- the first has precedence, perhaps you need a NameVirtualHost directive
报错信息1: Starting httpd: [Fri May 19 11:49:42 2011] [warn] VirtualHost 127.0.0.1:80 overl aps with Vir ...
- DSOframer 微软官方API的查阅方法
不了解 DSOframer 的朋友,可以先参考文章 DSOframer 的简单介绍和资源整理. 大家在使用 DSOframer 时,常常会不知道在哪里查 API 文档,网上的文章都非常零散,很难找到自 ...
- 深入理解 Javascript 面向对象编程(转)
一:理解构造函数原型(prototype)机制 prototype是javascript实现与管理继承的一种机制,也是面向对象的设计思想.构造函数的原型存储着引用对象的一个指针,该指针指向与一个原型对 ...
- for练习--侦察兵
static void Main21侦察兵(string[] args) { //某侦察队接到一项紧急任务,要求在A.B.C.D.E.F六个队员中尽可能多地挑若干人,但有以下限制条件: //侦察兵A和 ...
- MAVEN项目,Eclipse启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
由于是maven项目,tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包,所以报此错误: 解决办法: 项目右键 —> 属性 -> Deployment Assembly ...
- 5.7 cm server-agent 会出现无法启动
异常信息如下: 离线安装cloudera-scm-agent5.7的Unable to create the pidfile问题 在离线安装Cloudera Manager启动agent出现了如下异常 ...
- log4j学习笔记
在java文件中导入包: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 在所使 ...