在网上找了好久似乎都没有关于这方面的(可能是自己的信息量太小吧),于是自己来填补这个漏洞吧。
常见的方法莫过于自己定义一个数组,用以存储图片的引用,如:
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表中拿 ...
随机推荐
- :gAudit
http://www.doc88.com/p-0794369847693.html http://baike.baidu.com/link?url=pcOUfBpILuEAPFrBSsSU-6Vzg3 ...
- 浅谈38K红外发射接受编码
之前做接触过一次红外遥控器,现在有空想用简单的话来聊一聊,下面有错误的地方欢迎改正指出:1:红外的概念不聊,那是一种物理存在.以下聊38K红外发射接收,主要讲可编程的红外编码.2:红外遥控 红外遥控首 ...
- delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)(通过修改OpenTool生效)
delphi 的IDE快捷键与输入法切换键中突,以往的解决方法是下载一个ImeTool修改 windows 系统的快捷键 在 xp win7 都好使,但在win 10经常是修改完后,重启又失效了. 本 ...
- [置顶] access函数-linux
表头文件 #include<unistd.h> 定义函数 int access(const char * pathname, int mode); 函数说明 检查是否可以读/写某一已存在的 ...
- CURL常用命令---样例
原文地址: http://www.thegeekstuff.com/2012/04/curl-examples/ 下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://w ...
- hdu 1010 Tempter of the Bone(dfs暴力)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...
- Rescue(bfs)
Rescue Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- linux下可以和qq截屏比拟的工具hotshots
可以区域截图,并且对其进行编辑. 安装过程如下: sudo add-apt-repository ppa:ubuntuhandbook1/apps sudo apt-get update sudo a ...
- UVA 1601 The Morning after Halloween
题意: 给出一个最大为16×16的迷宫图和至多3个ghost的起始位置和目标位置,求最少经过几轮移动可以使三个ghost都到达目标位置.每轮移动中,每个ghost可以走一步,也可以原地不动,需要注意的 ...
- Tera Term——访问linux的ssh工具
个人感觉他是一款免费的并且比较好用的ssh工具,下载地址: http://logmett.com/index.php?/products/teraterm.html 下载之后一路下一步就可以了.可以选 ...