我是android的初学者,我不太了解Java,但我有其他语言编程的经验。我试图让 ImageView 显示我从 Parse 下载的位图。我想让holder.eventImageFeed显示图片,但我不知道如何做。我确信有一种非常简单的方法可以做到这一点,但我只是对 Java 不够熟悉,无法解决这个问题,而且我已经尝试了几种方法。
我知道位图 bmp 超出了类其余部分的范围,并且holder在内部类中不起作用,那么如何将bmp分配给holder.eventImageFeed?
这是我的代码:
public class FeedAdapter extends ArrayAdapter<ParseObject> {
protected Context mContext;
protected List<ParseObject> mEvent;
public FeedAdapter(Context context, List<ParseObject> event){
super(context, R.layout.feed_custom_layout, event);
mContext = context;
mEvent = event;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
ViewHolder holder;
if (convertView == null){
convertView = LayoutInflater.from(mContext).inflate(
R.layout.feed_custom_layout, null);
holder = new ViewHolder();
holder.usernameFeed = (TextView) convertView.findViewById(R.id.usernameFeedTextView);
holder.eventNameFeed = (TextView) convertView.findViewById(R.id.eventNameFeedTextView);
holder.eventImageFeed = (ImageView) convertView.findViewById(R.id.eventFeedView);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
ParseObject eventObject = mEvent.get(position);
//Username
String username = eventObject.getString("eventCreator");
holder.usernameFeed.setText(username);
//Event Name
String eventName = eventObject.getString("eventTitle");
holder.eventNameFeed.setText(eventName);
//Event Artwork
ParseFile fileObject = (ParseFile) eventObject.get("eventArtwork");
fileObject.getDataInBackground(new GetDataCallback() {
public void done(byte[] data, ParseException e) {
if (e == null) {
// Decode the Byte[] into
// Bitmap
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
//What do I do here?
}
}
});
最佳答案
你可以这样做:
holder.eventImageFeed.setImageBitmap(bmp);
或者您可以使用 picasso 使用图像 url 设置图像。
Picasso.with(context).load(fileObject.getUrl()).into(holder.eventImageFeed);
关于java - Android:将位图从 Parse 分配给 ImageView 时卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31926761/