package com.codepath.apps.tumblrsnap; import java.util.List; import android.content.Context; import android.text.format.DateUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.codepath.apps.tumblrsnap.models.Photo; import com.nostra13.universalimageloader.core.ImageLoader; public class PhotosAdapter extends ArrayAdapter<Photo> { public PhotosAdapter(Context context, List<Photo> photos) { super(context, 0, photos); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater li = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.photo_item, null); } Photo photo = getItem(position); TextView tvName = (TextView) view.findViewById(R.id.tvName); tvName.setText(photo.getBlogName()); TextView tvTimestamp = (TextView) view.findViewById(R.id.tvTimestamp); tvTimestamp.setText(DateUtils.getRelativeTimeSpanString(1000 * photo .getTimestamp())); ImageView ivProfile = (ImageView) view.findViewById(R.id.ivProfile); ivProfile.setImageResource(android.R.color.transparent); ImageLoader.getInstance().displayImage(photo.getAvatarUrl(), ivProfile); ImageView ivPhoto = (ImageView) view.findViewById(R.id.ivPhoto); ivPhoto.setImageResource(android.R.color.transparent); // Set the dimensions of the ImageView, so it will be resize immediately // before the photo // finishes downloading. RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) ivPhoto .getLayoutParams(); lp.height = 700; // photo.getPhotoHeight() * 2; lp.width = 700; // photo.getPhotoWidth() * 2; ivPhoto.setLayoutParams(lp); ImageLoader.getInstance().displayImage(photo.getPhotoUrl(), ivPhoto); return view; } }