【发布时间】:2017-08-07 15:54:45
【问题描述】:
我正在开发一个使用解析服务器的项目。它的工作方式类似于 tinder,允许用户下载并显示附近其他用户的姓名和图像。
它有效,接受一个错误,即名称和图像在应用中显示时不正确匹配。
该应用程序最初会下载并创建一组本地用户,这可以正常工作。
然后我使用以下代码下载他们的图片:
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereWithinKilometers("location", parseCustLocation, searchRadius);
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(final List<ParseUser> objects, ParseException e) {
if (e==null){
Log.d("state", "215 query successful");
if (objects.size()>0) {
for (final ParseUser user : objects){
Log.d("state", "231"+user.getUsername());
//TextView text = (TextView) findViewById(R.id.Name);
Users.add(user);
sUsers.add((String) user.get("Name"));
locations.add((ParseGeoPoint) user.get("location"));
parseFiles.add((ParseFile) user.get("image"));
}
for (ParseFile file : parseFiles) {
file.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if (e==null){
Log.d("state", "174 we've got data");
Bitmap bmp = BitmapFactory.decodeByteArray(data,0,data.length);
bitmaps.add(bmp);
if (sUsers.size()==bitmaps.size()){
swipeAdapter.updateData(sUsers,bitmaps);
}
}
}
});}
据我所知,我认为问题在于线条
Bitmap bmp = BitmapFactory.decodeByteArray(data,0,data.length);
bitmaps.add(bmp);
例如,当我运行调试器时,我有两个数组,如下所示(bitmapFactory 似乎将位图放在 bitmap[] 的任何部分):
sUsers[0] = "Billy",
sUsers[1] = "Sarah",
sUsers[2] = "Jim",
bitmaps[0] = Sarahs image,
bitmaps[1] = Jims image,
bitmaps[2] = Billys image
当我显然需要时
bitmaps[0] = Billys image,
bitmaps[1] = Sarahs image,
bitmaps[2] = Jims image,
注意: 如果我使用调试器逐步运行应用程序,位图的顺序似乎正确。
【问题讨论】:
标签: image parse-platform bitmap bitmapfactory