package hillfly.wifichat.common.view.imagefactory;
import hillfly.wifichat.R;
import hillfly.wifichat.activity.ImageFactoryActivity;
import hillfly.wifichat.common.view.CropImage;
import hillfly.wifichat.common.view.CropImageView;
import hillfly.wifichat.util.ImageUtils;
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ProgressBar;
public class ImageFactoryCrop extends ImageFactory {
public static final int SHOW_PROGRESS = 0;
public static final int REMOVE_PROGRESS = 1;
private CropImageView mCivDisplay;
private ProgressBar mPbBar;
private String mPath;
private Bitmap mBitmap;
private CropImage mCropImage;
public ImageFactoryCrop(ImageFactoryActivity activity, View contentRootView) {
super(activity, contentRootView);
}
@Override
public void initViews() {
mCivDisplay = (CropImageView) findViewById(R.id.imagefactory_crop_civ_display);
mPbBar = (ProgressBar) findViewById(R.id.imagefactory_crop_pb_progressbar);
}
@Override
public void initEvents() {
}
public void init(String path, int w, int h) {
mPath = path;
mBitmap = ImageUtils.decodedBitmapFromPath(mPath, w, h);
if (mBitmap != null) {
resetImageView(mBitmap);
}
}
private void resetImageView(Bitmap b) {
mCivDisplay.clear();
mCivDisplay.setImageBitmap(b);
mCivDisplay.setImageBitmapResetBase(b, true);
mCropImage = new CropImage(mContext, mCivDisplay, handler);
mCropImage.crop(b);
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case SHOW_PROGRESS:
mPbBar.setVisibility(View.VISIBLE);
break;
case REMOVE_PROGRESS:
handler.removeMessages(SHOW_PROGRESS);
mPbBar.setVisibility(View.INVISIBLE);
break;
}
}
};
public void Rotate() {
if (mCropImage != null) {
mCropImage.startRotate(90.f);
}
}
public Bitmap cropAndSave() {
return mCropImage.cropAndSave();
}
}