java - Android:将位图从 Parse 分配给 ImageView 时卡住了

标签 java android parse-platform bitmap

我是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/

相关文章:

javascript - 带有数据的 Handlebars.js 网格

windows - 构建 OpenJDK - Corba 问题

java - Java中迭代父类ArrayList时使用子类方法

java - 以正确的方式在应用程序中注册

android - 如何通过多部分实体方法将值从应用程序传递到 api 端?

javascript - 未捕获的类型错误 : Cannot read property 'get' of undefined error

java - 如何根据用户输入显示偶数和奇数? - java

JavaFX Maven 插件 : com. zenjava - jfx :jar to include all depedencies?

android - 何时使用 Activity 或 fragment

ios - 如何在 Xcode 7 中启用_BITCODE?