基于Bmob平台进行从服务器获取图片数据(url)的操作,并以瀑布流得形式显示图片
2016-09-16 20:38
323 查看
最近一直在学习基于Bmob平台的数据交互,网上找了很多例子,但很多因为各种原因没有调试出来。后来转变学习思路,从获取数据开始学起,通过查阅文档,逛帖子找资料,学会了如何获取Bmob服务器端的图片数据,并通过获取其url来获取图片并以瀑布流得形式显示出来。参考的文章如http://www.cnblogs.com/jianrong-zheng/p/3449629.html,http://blog.csdn.net/hester_hester/article/details/51934143通过学习这两篇我感觉收获是最
大的,下面放效果图:
点击“图片“,会获取图片数据并显示:
Bmob文档里有查询数据的案例,这里不仔细论述,直接借用代码格式。上面是效果图,先来看看Bmob平台的结构图:我在这里主要获取的是QiangYu表Contentfigureurl这一列数据,获取jpg格式图片,当然你有精力的话可以获取objectId列以及其他数据表的数据。
Bmob开发文档有数据查询的具体案例,这里不做研究,这里直接借用代码格式:
由于图片数据有很多条,我们主要获取的是图片所在的路径,即Bmob平台分配给图片的url,用代码格式:
String imgs = qiangyu.getContentfigureurl().getUrl();//获取图片url
后来获取的String数据格式如:M02/F9/0E/oYYBAFYV0dqAPYSUAABO6uI5wuY049.jpg,这不完整,我们需自己再添加:http://file.bmob.cn/,这样获取的url即为: http://file.bmob.cn/M02/F9/0E/oYYBAFYV0dqAPYSUAABO6uI5wuY049.jpg
一开始我用的是String[]来集中获取的每一条地址,但感觉不是很好,后来用HashMap来获取,效率较高,但后面还要涉及二维数组转为一维数组来取得每一条url的问题。这里是map的应用代码:
下图是获取的url组,用System.out.println();输出显示结果:
接下来是数组转化,这样方便瀑布流图片显示时获取每一条url:
参数传递给瀑布流显示所需要的Activity里的参数时,网上的方法很多,使用了多种,发现下面这个方法比较好(当然我的情况是这样):
数据传输口 //用Bundle携带数据
数据接口代码:
以上就是实现这个获取显示的功能的主要代码,大致过程就是这样,瀑布流的过程就不详细展开了,可以参考我看的那两篇文章,里面有具体代码,可以实现。
贴上我的代码,时间比较久了,有问题可能要自己改:http://download.csdn.net/download/xuanwo11/9826241。
后续有兴趣可以学习Bmob的一些案例。有问题可以私信,作者水平有限,纯属爱好,请见谅哦。
大的,下面放效果图:
点击“图片“,会获取图片数据并显示:
Bmob文档里有查询数据的案例,这里不仔细论述,直接借用代码格式。上面是效果图,先来看看Bmob平台的结构图:我在这里主要获取的是QiangYu表Contentfigureurl这一列数据,获取jpg格式图片,当然你有精力的话可以获取objectId列以及其他数据表的数据。
Bmob开发文档有数据查询的具体案例,这里不做研究,这里直接借用代码格式:
BmobQuery<QiangYu> query1 = new BmobQuery<QiangYu>(); query1.findObjects(this, new FindListener<QiangYu>() { @Override public void onError(int code, String msg) { // TODO Auto-generated method stub Log.i("查询失败:",msg); } @Override Log.i("查询成功:共",object.size()+"条数据。"); public void onSuccess(List<QiangYu> object) { // TODO Auto-generated method stub int j=object.size(); System.out.print(j+"\n");
由于图片数据有很多条,我们主要获取的是图片所在的路径,即Bmob平台分配给图片的url,用代码格式:
String imgs = qiangyu.getContentfigureurl().getUrl();//获取图片url
后来获取的String数据格式如:M02/F9/0E/oYYBAFYV0dqAPYSUAABO6uI5wuY049.jpg,这不完整,我们需自己再添加:http://file.bmob.cn/,这样获取的url即为: http://file.bmob.cn/M02/F9/0E/oYYBAFYV0dqAPYSUAABO6uI5wuY049.jpg
一开始我用的是String[]来集中获取的每一条地址,但感觉不是很好,后来用HashMap来获取,效率较高,但后面还要涉及二维数组转为一维数组来取得每一条url的问题。这里是map的应用代码:
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); int i=0; HashMap<String, Object> map = new HashMap<String, Object>(); for (QiangYu qiangyu:object) { if(qiangyu.getContentfigureurl() != null){ //文件名称 //qiangyu.getContentfigureurl().getFilename(); //文件地址 String imgs = qiangyu.getContentfigureurl().getUrl(); map.put(""+i,"http://file.bmob.cn/"+qiangyu.getContentfigureurl().getUrl()); i++;
}//这里的i对后面维数转化有用
下图是获取的url组,用System.out.println();输出显示结果:
接下来是数组转化,这样方便瀑布流图片显示时获取每一条url:
Set<String> set = map.keySet(); Iterator<String> it = set.iterator(); String[][] ss = new String[map.size()][2]; for (i = 0; i < map.size(); i++) { ss[i][0] = it.next(); ss[i][1] = (String) map.get(ss[i][0]); System.out.print(ss[i][1]+"\n"); } System.out.println(ss.length); String [] urls = new String[(ss.length)*2]; for ( i = 0; i < ss.length; i++) { for ( j = 0; j < ss[i].length; j++) { urls[i+j] = ss[i][j+1]; System.out.println(urls[i+j]); j++; } }
参数传递给瀑布流显示所需要的Activity里的参数时,网上的方法很多,使用了多种,发现下面这个方法比较好(当然我的情况是这样):
数据传输口 //用Bundle携带数据
Bundle bundle=new Bundle(); //传递name参数为urls bundle.putStringArray("name", urls); //String section =String.valueOf(data.toString());////get每一行的数据 Intent intent =new Intent(MainActivity.this,MainActivity1.class); intent.putExtras(bundle); startActivity(intent);
数据接口代码:
//新页面接收数据 Bundle bundle = this.getIntent().getExtras(); //接收name值 String[] urls= bundle.getStringArray("name");
以上就是实现这个获取显示的功能的主要代码,大致过程就是这样,瀑布流的过程就不详细展开了,可以参考我看的那两篇文章,里面有具体代码,可以实现。
贴上我的代码,时间比较久了,有问题可能要自己改:http://download.csdn.net/download/xuanwo11/9826241。
后续有兴趣可以学习Bmob的一些案例。有问题可以私信,作者水平有限,纯属爱好,请见谅哦。
相关文章推荐
- 使用MATLAB对数据进行位操作以及RGB图片显示
- SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
- table 中 点击某行,获取这一行的数据弹框显示,或进行其他的操作
- 我们的应用或多或少都会从网络获取图片数据然后进行显示,下面就将实现一个这样的例子,获取网络中的图片!
- [django]用requests从url获取图片(数据类型是bytes)后如何在template中显示出来
- 获取服务器Url图片资源,并显示在ImageView中 Android
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- 登陆验证姓名密码,自动登录 ,get获取服务器数据,显示表格形式到界面
- vc/mfc获取rgb图像数据后动态显示及保存图片的方法
- 使用Repeater绑定数据,及提取显示数据进行操作的一点小方法!(模板列)
- vc/mfc获取rgb图像数据后动态显示及保存图片的方法
- C# 通过URL获取图片并显示在PictureBox上的方法
- C# 操作Excel ——Excel获取数据、时间、图片
- ExtJs4.1将服务器中的数据进行分页显示
- C# 操作Excel ——Excel获取数据、时间、图片
- 基于半边数据结构(翼边数据结构)的Eular操作来实现扫成 通过OpenGL进行CAD实体建模 经测试可直接运行
- [原]as3 flash web 应用 (8)图片批量上传之 向服务器发送和获取额外数据
- ExtJs之GridPanel综合操作(一)——异步获取Json数据并显示
- 基于JMS的数据交换既数据互操作平台的解决方案
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-AE常用操作代码