代码之家  ›  专栏  ›  技术社区  ›  Hilda

如何从parse.com上传最后5张图片?

  •  0
  • Hilda  · 技术社区  · 9 年前

    我正在开发一个应用程序,从parse.com查询图像(从我的树莓PI上传)。我也在用毕加索展示这张照片。我的树莓被编程为每小时拍5张照片。我只想检索上传到解析的最新5张图片。我的代码是:

    ParseObject object = mImages.get(position);
    //get the image
    
    Picasso.with(getContext().getApplicationContext()).load(object.getParseFile("pictures")
                .getUrl()).noFade().into(holder.homeImage);
    
    return convertView;
    

    我不太确定如何修改代码以仅检索最新的5张图像。任何帮助都将不胜感激,谢谢!

    另外,我对andriod、parse和stackoverflow是新手。很高兴见到你们!

    3 回复  |  直到 9 年前
        1
  •  0
  •   Siddharth Lele    9 年前

    下面是获取最后5个图像的示例代码。最后添加了对该代码的一点解释。

    List<ParseObject> objects;
    ParseQuery<ParseObject> query = ParseQuery.getQuery("YourClassName");
    query.setLimit(5);
    query.orderByDescending("createdAt");
    try {
        objects = query.find();
        for (int i = 0; i < objects.size(); i++)   {
    
            ParseFile file = objects.get(i).getParseFile("pictures");
            file.getDataInBackground(new GetDataCallback() {
                @Override
                public void done(byte[] bytes, ParseException e) {
                    if (bytes != null && e == null) {
                        Bitmap bmpImage = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                    } else {
                        // DO SOMETHING HERE
                    }
                }
            });
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }
    

    解释如下:

    1. 更换 YourClassName 用类名查询图像。

    2. 这个 query.orderByDescending("createdAt"); 随着 query.setLimit(5); 确保仅从Parse检索最后5个图像。

    3. 此代码不考虑毕加索的使用。然而,此示例将检索到的 ParseFile 进入 Bitmap 。将其设置为 ImageView 例如,它足够简单。

    4. 此代码用于 Asynctask 因此不使用 query.findInBackground(...) 。请根据需要进行修改。

        2
  •  0
  •   Mustansar Saeed    9 年前

    你可以取完整的 list 从下面的代码中得到最后五个 arraylist

    ParseQuery<ParseObject> query = ParseQuery.getQuery(YourModel.class.getSimpleName());
            query.whereContains("key", "value");
            query.findInBackground(new FindCallback<ParseObject>() {
                @Override
                public void done(List<ParseObject> list, ParseException e) {
                      // fetch the last five objects from this list
                }
            }
    

    希望这有帮助。 当做

        3
  •  0
  •   Murtaza Khursheed Hussain    9 年前

    ParseQuery有望解决您的问题

    ParseQuery parseQuery = new ParseQuery("pictures");
    parseQuery.setLimit(5);
    parseQuery.findInBackground(your_method_name);