在网上找了好久似乎都没有关于这方面的(可能是自己的信息量太小吧),于是自己来填补这个漏洞吧。
常见的方法莫过于自己定义一个数组,用以存储图片的引用,如:
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表中拿 ...
随机推荐
- delphi代码实现创建dump文件
I used a "watchdog" thread for this, which checks if the mainform is responding, and make ...
- 15 Tricks to Appear Smart in Emails(转)
英文原文:15 Tricks to Appear Smart in Emails 如果你不关心在邮件中表现聪明,就不要看本文了. 好吧,我们是孤独的. 在公司环境里,与电子通讯的肥沃土壤相比,没有什么 ...
- perl 实现微信简版<2>
<pre name="code" class="python">use LWP::UserAgent; use URI::Escape; use N ...
- Bayesian Formulation on Cooperative Tracking
Suppose a joint state representing a set of \(N_{n}\) nodes moving in a field\[ \textbf{X}= \b ...
- Another attempt about LSI
Last week I was here Natural Language Processing in NZ. Someone asked a question, is there any exist ...
- Hadoop 3、Hadoop 分布式存储系统 HDFS
HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...
- 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)
1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...
- 为什么VS提示SurfFeatureDetector不是cv的成员函数
surf和sift算法都是在头文件#include <opencv2/features2d/features2d.hpp>中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现 ...
- Appium Android Bootstrap控制源代码的分析AndroidElement
通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...
- 去除express.js 3.5中报connect.multipart() will be removed in connect 3.0的警告
1 $ node app.js 2 connect.multipart() will be removed in connect 3.0 3 visit https://github.com/s ...