第一次写博客感觉还心情还挺激动。当听说有Bmob为移动端制定的后台,正好现在我还并未学会开发后台,于是抱着尝试的心去了解一下(其实我还是个小萌新)。

下面这些操作的前提已经创建好项目。

1 . 直接在Bmob后端上上传图片:

直接在后端上传图片其实方法很简单,但由于我还是第一次使用,所以碰到了不少麻烦。
第一步:先需要添加一个表(起名尽量规范,表名会在代码中被使用到),操作如下:
基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片-LMLPHP
点击红色的“添加表”,然后出现这个提示框。表名称尽量符合你项目的起名规则,在我的示例中,起名为:advertisement。表注释选填。

第二步:选择红色地方的“添加列”,出现输入框,内容这些都自己定义。注意:列类型根据你要添加数据的类型来选择相应的类型。在我的示例中,我是添加图片,所以选择的是File类型。
基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片-LMLPHP

第三步:点击“添加行”,就会出现新的一空白行。之后在“Picture File”下面空白格点击“选择文件”,即可直接在后端上传。
基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片-LMLPHP
上传成功后就会出现这个样子。
基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片-LMLPHP

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));   //根据地址解码并显示图片
                }
            }
        });
    }

结果展示:
基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片-LMLPHP

10-05 19:18