[英]Retrieve multiple images from parse with getdatainbackground (android)
我是Android的新手,真的需要一些熟悉Parse API的幫助。 我所做的是設置我的卡片容器,里面裝滿了多張圖片。 然而,真實顯示按照“DownloadBitmap”以隨機順序顯示卡片而不是按照我的想法升序。 可疑的根本原因可能是通過“getdatainbackground()”運行的延遲時間。 有誰知道這個混亂的問題怎么能解決? 我嘗試使用“getdata()”代替,但它確實殺死了性能,似乎不是一個好選擇。 我的代碼如下。
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("food");
query.orderByAscending("order");
query.setLimit(10);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(final List<ParseObject> objects, ParseException e) {
for (ParseObject obj_food : objects) {
if (obj_food.getInt("order") == order) {
final ParseFile file = obj_food.getParseFile("picture");
//bitmap
file.getDataInBackground(new GetDataCallback() {
public void done(byte[] data, ParseException e) {
if (e == null) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
DownloadBitmap.add(bitmap);
}
}
});
}
order++;
}
}
});
您的主qry應該將鏈接URL的JSON返回到您的位圖的Parse.files。
您應該使用圖像庫(UIL,Picasso,AQuery ...)來管理方面(網絡GET,緩存GET)基於用於卡的Layout.VIEW的asNeeded位圖。
當你需要一個卡的布局/視圖的bitMap時,你只需讓圖像庫管理它......這些庫設計用於插入'getView()'工作流程。
示例AQry(parms引用視圖和圖像的Url列表)
private static AQuery mAq;
mAq.id(holder.imgView).width(110).image(mm.getImages().get(0).getUrl().toString(),
true, true, 0, R.drawable.default_video, null, 0, mAspectRatio);
example Picasso
@Override public View getView(int i, View view, ViewGroup viewGroup) {
//TODO how is this called w val=-1
if(i < 0) i = 0;
ViewHolder viewHolder;
if (view == null) {
viewHolder = new ViewHolder();
view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.grid_item, viewGroup, false);
viewHolder.image = (ImageView) view.findViewById(R.id.image);
viewHolder.text = (TextView) view.findViewById(R.id.text);
view.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) view.getTag();
}
Picasso.with(view.getContext())
.load(HomeActivity.getUrlbyPosition(i))
.into(viewHolder.image);
if (HomeActivity.getMsgByPosition(i).length() > 39) {
viewHolder.text.setText(HomeActivity.getMsgByPosition(i).substring(0, 39));
}else{viewHolder.text.setText(HomeActivity.getMsgByPosition(i));
}
return view;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.