0

リストビューの各行に画像の水平スクロールビューを作成しようとしています。私はピカソを使って画像を取得しています。私の問題は、スクロールすると、水平スクロールビューの画像がごちゃごちゃになることです。into(android.widget.ImageView target, Callback callback) メソッドを使用するとイメージビューの同期に役立つことを期待していましたが、違います。

コード:

public class RParrayAdapter extends ArrayAdapter {

static class ViewHolder {

    ImageView photoThumbIv1;
    ImageView photoThumbIv2;

    int position;

}

private final Context context2;
int mWidth;
int mHeight;
Callback callback;
ViewHolder viewHolder;


public RParrayAdapter(Context context2, ArrayList<Listing2> listings2) {
    super(context2, R.layout.list_item, listings2);
    this.context2 = context2;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final Listing2 listing2 = getItem(position);

    if (convertView == null) {
        viewHolder = new ViewHolder();
        LayoutInflater inflater = LayoutInflater.from(getContext());
        convertView = inflater.inflate(R.layout.list_item, null);

        viewHolder.photoThumbIv1 = (ImageView) convertView
                .findViewById(R.id.photo_thumb_1);
        viewHolder.photoThumbIv2 = (ImageView) convertView
                .findViewById(R.id.photo_thumb_2);

        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }

    DisplayMetrics metrics = new DisplayMetrics();
    metrics = getContext().getResources().getDisplayMetrics();
    mWidth = (int) (.9 * (metrics.widthPixels));
    mHeight = (int) (mWidth / 1.33);

    if (listing2.thumbnail_image_url1 != null) {
        Picasso.with(context2).load(listing2.thumbnail_image_url1)
                .resize(mWidth, mHeight).centerCrop()
                .into(viewHolder.photoThumbIv1, new Callback() {
                      @Override
           public void onSuccess() {
           viewHolder.photoThumbIv2
           .setVisibility(View.VISIBLE);
           }

         @Override
         public void onError() {
          }
         });
         }

         if (listing2.thumbnail_image_url2 != null) {
         Picasso.with(context2).load(listing2.thumbnail_image_url2)
         .resize(mWidth, mHeight).centerCrop()
         .into(viewHolder.photoThumbIv2, new Callback() {

           @Override
           public void onSuccess() {
           viewHolder.photoThumbIv2
           .setVisibility(View.VISIBLE);
           }

         @Override
         public void onError() {

         }
         });
         }

    Picasso.with(context2).toString();

    }
    return convertView;
}

}

ご協力ありがとうございます。

4

1 に答える 1

0

他の疑惑を提起する前に。最初にすべきではないif

if (listing2.thumbnail_image_url1 != null) {
        Picasso.with(context2).load(listing2.thumbnail_image_url1)
                .resize(mWidth, mHeight).centerCrop()
                .into(viewHolder.photoThumbIv1, new Callback() {
                      @Override
           public void onSuccess() {
           viewHolder.photoThumbIv1
           .setVisibility(View.VISIBLE);
           }

         @Override
         public void onError() {
          }
         });
         }

viewHolder.photoThumbIv2.setVisibility(View.VISIBLE);おそらく viewHolder.photoThumbIv1.setVisibility(View.VISIBLE);、画像をロードしているためです viewHolder.photoThumbIv1

于 2014-03-15T00:04:37.370 に答える