【发布时间】:2015-08-29 13:21:37
【问题描述】:
我正在尝试检索我保存在 Parse.com 上的图像。没有错误,但图像未显示。我正在使用自定义适配器。
这是活动。我尝试运行调试器,但在那里找不到任何问题。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_activty);
mProgress = (ProgressBar)findViewById(R.id.progressBar2);
lv = (ListView)findViewById(R.id.listView);
fileArrayList = new ArrayList<ParseFile>();
mProgress.setVisibility(View.VISIBLE);
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Images");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
mProgress.setVisibility(View.INVISIBLE);
for (ParseObject obj : list) {
ParseFile i = obj.getParseFile("Image");
fileArrayList.add(i);
}
} else {
Toast.makeText(getApplicationContext(), "Error retrieving images: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
listviewAdapter = new ListviewAdapter(ImageActivty.this, fileArrayList);
lv.setAdapter(listviewAdapter);
}
这是我的适配器。
public class ListviewAdapter extends BaseAdapter{
private final static String TAG = ListviewAdapter.class.getSimpleName();
private Context activity;
private LayoutInflater inflater = null;
private List<ParseFile> sellers;
int layout;
public ListviewAdapter(Context activity, List<ParseFile> sellers) {
this.activity = activity;
this.sellers = sellers;
inflater = LayoutInflater.from(activity);
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public class ViewHolder {
ImageView imageView;
FrameLayout rl;
TextView textView;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
View v =view;
ViewHolder holder = new ViewHolder();
if (view == null) {
LayoutInflater li = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.list_item,null);
holder.imageView = (ImageView)view.findViewById(R.id.imageView2);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
ParseFile s = sellers.get(position);
byte[] bitmapdata = new byte[0];
try {
bitmapdata = s.getData();
} catch (ParseException e) {
e.printStackTrace();
Log.d("ListAdapter","Error here.");
}
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata.length);
holder.imageView.setImageBitmap(bitmap);
Log.d("CustomAdapter.class", "CustomAdapter");
return v;
}
}
我的一个朋友帮助我将解析文件转换为适配器中的位图。我怀疑实施是错误的。如果是,我如何将 ParseFile 转换为位图。有没有其他方法可以从 Parse.com 的列表中检索图像并将其设置为 imageview?
【问题讨论】:
标签: android listview parse-platform bitmap android-image