第一次写博客感觉还心情还挺激动。当听说有Bmob为移动端制定的后台,正好现在我还并未学会开发后台,于是抱着尝试的心去了解一下(其实我还是个小萌新)。
下面这些操作的前提已经创建好项目。
1 . 直接在Bmob后端上上传图片:
直接在后端上传图片其实方法很简单,但由于我还是第一次使用,所以碰到了不少麻烦。
第一步:先需要添加一个表(起名尽量规范,表名会在代码中被使用到),操作如下:
点击红色的“添加表”,然后出现这个提示框。表名称尽量符合你项目的起名规则,在我的示例中,起名为:advertisement。表注释选填。
第二步:选择红色地方的“添加列”,出现输入框,内容这些都自己定义。注意:列类型根据你要添加数据的类型来选择相应的类型。在我的示例中,我是添加图片,所以选择的是File类型。
第三步:点击“添加行”,就会出现新的一空白行。之后在“Picture File”下面空白格点击“选择文件”,即可直接在后端上传。
上传成功后就会出现这个样子。
2 . 从Bmob后端上下载图片
第一步:先建一个数据类,需要继承BmobFile类才可以。代码如下:
// 注意类名应和你的表名相同,此例的类名就和上方上传的图片表名相同
public class advertisement extends BmobObject {
private String id;
private BmobFile ad_thumb;
public void setid(String id){
this.id = id;
}
public void setAd_thumb(BmobFile ad_thumb){
this.ad_thumb = ad_thumb;
}
public String getid(){
return id;
}
public BmobFile getad_thumb(){
return ad_thumb;
}
}
第二步:
/*
* 在此例中,通过按钮点击事件,来下载图片
* BmobQuery的泛型为你的数据类
* 当e == null时,表明数据获取成功,将得到的List传入show_add类中下载图片*/
@Override
public void onClick(View v) {
if(v.getId() == R.id.btn_get){
BmobQuery<advertisement> query=new BmobQuery<advertisement>();
query.findObjects(new FindListener<advertisement>() {
@Override
public void done(List<advertisement> list, BmobException e) {
if(e == null){
show_ad(list);
}else{
Toast.makeText(MainActivity.this,""+e.getMessage(),Toast.LENGTH_LONG).show();
}
}
});
}
}
第三步:
/*
* 例子中取得其中一个图片展示,所以选择的是list.get(0)
* 获取到BmobFile对象,然后调用下载方法。
* onProgress方法表示下载进程,目前用不到。
* done表明下载完成,得到的String s表明下载之后的储存的默认地址(当然可以自定义地址,方法请自行查询Bmob开发文档)
* */
public void show_ad(List<advertisement> list){
advertisement ad = list.get(0);
BmobFile icon=ad.getad_thumb();
icon.download(new DownloadFileListener() {
@Override
public void onProgress(Integer integer, long l) {
}
@Override
public void done(String s, BmobException e) {
if(e == null){
iv_ad.setImageBitmap(BitmapFactory.decodeFile(s)); //根据地址解码并显示图片
}
}
});
}
结果展示: