package com.dozuki.ifixit.ui.gallery; import android.content.Context; import android.content.res.Resources; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.RelativeLayout; import com.dozuki.ifixit.R; import com.dozuki.ifixit.util.PicassoUtils; import com.dozuki.ifixit.util.Utils; import com.squareup.picasso.Picasso; import com.squareup.picasso.RequestCreator; import java.io.File; public class MediaViewItem extends RelativeLayout { private RelativeLayout mSelectImage; private ImageView mImageView; private ProgressBar mLoadingBar; private int mTargetWidth; private int mTargetHeight; private Picasso mPicasso; public MediaViewItem(Context context) { super(context); mPicasso = PicassoUtils.with(context); LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.gallery_cell, this, true); mImageView = (ImageView)findViewById(R.id.media_image); mSelectImage = ((RelativeLayout)findViewById(R.id.selected_image)); mLoadingBar = (ProgressBar)findViewById(R.id.gallery_cell_progress_bar); mSelectImage.setVisibility(View.INVISIBLE); mLoadingBar.setVisibility(View.GONE); Resources res = context.getResources(); mTargetWidth = res.getDimensionPixelSize(R.dimen.gallery_grid_column_width); mTargetHeight = res.getDimensionPixelSize(R.dimen.gallery_grid_item_height); } public void setImageItem(String image) { buildImage(mPicasso.load(image)); } public void setImageItem(File image) { buildImage(mPicasso.load(image)); } public void setImageItem(Uri image) { buildImage(mPicasso.load(image)); } private void buildImage(RequestCreator builder) { builder .resize(mTargetWidth, mTargetHeight) .centerCrop() .error(R.drawable.no_image) .into(mImageView); } public void setSelected(boolean selected) { mSelectImage.setVisibility(selected ? View.VISIBLE : View.INVISIBLE); } public void clearImage() { Utils.safeStripImageView(mImageView); mImageView.setImageResource(R.color.image_border); } }