繁体   English   中英

Android:卡住分配从解析到图像视图的位图

[英]Android: Stuck assigning a bitmap from Parse to an imageview

我是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通过图片网址设置图片。

Picasso.with(context).load(fileObject.getUrl()).into(holder.eventImageFeed);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM