我正在开发一个应用程序来查询来自parse.com的图像(从我的raspberryPI上传)。我也用毕加索来显示图像。我的raspberrypi被编程为每小时拍摄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张图像。任何帮助将不胜感激,谢谢!
P.S。我是andriod,parse和stackoverflow的新手。很高兴见到你们!
答案 0 :(得分:0)
您可以从以下代码中获取完整的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
}
}
希望这会有所帮助。 的问候,
答案 1 :(得分:0)
ParseQuery有望解决您的问题
$(".select_all").change(function(){
var selectedTypeCount = $("input[name='" + $(this).attr('name') + "']:checked").length;
$("[id*=" + $(this).attr('name') + "]").html(selectedTypeCount);
});
答案 2 :(得分:0)
以下是获取最后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();
}
解释:
将YourClassName
替换为您要查询图像的类名。
query.orderByDescending("createdAt");
和query.setLimit(5);
确保只从Parse中检索到最后5张图片。
此代码不考虑Picasso的使用。但是,此示例会将检索到的ParseFile
转换为Bitmap
。例如,将其设置为ImageView
非常简单。
此代码用于Asynctask
,因此不使用query.findInBackground(...)
。根据需要进行修改。