我有自定义列表视图。
class CustomAdapter extends ArrayAdapter<String> {
int[] images = {};
String[] names = {};
public CustomAdapter(Context context, String[] names, int[] images) {
super(context, R.layout.custom_row, names);
this.images = images;
this.names = names;
}
public class ViewHolder {
TextView username;
ImageView imageView2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
View customView = layoutInflater.inflate(R.layout.custom_row, parent, false);
final ViewHolder holder = new ViewHolder();
holder.username = (TextView) customView.findViewById(R.id.username);
holder.imageView2 = (ImageView) customView.findViewById(R.id.imageView2);
holder.imageView2.setImageResource(images[position]);
holder.username.setText(names[position]);
return customView;
}
}
我正在尝试从解析中下载图像并将其显示在列表视图中。
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Profile");
query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
if (list.size() > 0) {
for (ParseObject object : list) {
final ParseFile file = (ParseFile) object.get("profilePicture");
file.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] bytes, ParseException e) {
//it gets to here
if (e == null) {
Log.i("AppInfo", "I am here");
Bitmap image = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Log.i("AppInfo", "I am here2");
Log.i("AppInfo", "I am here3");
} else {
e.printStackTrace();
}
}
});
}
}
}
}
});
我无法下载图片并将其显示在自定义列表视图中。我遇到的问题是来自解析的图像必须存储在int []中,否则“holder.imageView2.setImageResource(images [position]);”将永远不会工作,因为它需要一个int []来获得这个位置。 int []确实有效,因为我已经使用存储在手机上的图像进行了测试(不是从解析中下载并存储,在应用启动之前预先存储)。如果有更好的方法可以创建带图像的自定义列表视图,请通知我。
答案 0 :(得分:0)
TileUpdater
正在做其他事情。资源文件夹中的所有文件都被编入索引并存储为imageView2.setImageResource(int)
索引,可以引用为int
。因此,使用该功能,您只能加载本地文件。你需要的是:
R.drawable.name_of_the_local_image
修改强>:
我从Parse找到了一些代码示例,也许您应该使用他们的UI类,如Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
holder.imageView2.setImageBitmap(bmp);
或ParseImageView
。 ParseQueryAdapter
:
ParseImageView
对于您的查询,请尝试使用ParseFile parseFile = parseObject.getParseFile("image");
ParseImageView parseImageView = (ParseImageView)findViewById(R.id.parse_image_view);
imageView.setParseFile(paresFile);
imageView.loadInBackground();
作为objectType:ParseUser