package com.yuyh.sprintnba.ui.fragment;
import android.graphics.Color;
import android.graphics.drawable.Animatable;
import android.os.Bundle;
import android.view.View;
import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder;
import com.facebook.drawee.controller.BaseControllerListener;
import com.facebook.drawee.drawable.ScalingUtils;
import com.facebook.drawee.generic.GenericDraweeHierarchy;
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
import com.facebook.imagepipeline.image.ImageInfo;
import com.yuyh.library.utils.log.LogUtils;
import com.yuyh.library.utils.toast.ToastUtils;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseLazyFragment;
import com.yuyh.sprintnba.utils.FrescoUtils;
import com.yuyh.sprintnba.widget.ImageLoadProgressBar;
import com.yuyh.sprintnba.widget.photodraweeview.OnPhotoTapListener;
import com.yuyh.sprintnba.widget.photodraweeview.PhotoDraweeView;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* @author yuyh.
* @date 2016/7/26.
*/
public class ImagePreFragment extends BaseLazyFragment {
public static final String INTENT_URL = "url";
@InjectView(R.id.pdvImage)
PhotoDraweeView pdvImage;
private String url;
public static ImagePreFragment newInstance(String url) {
ImagePreFragment mFragment = new ImagePreFragment();
Bundle bundle = new Bundle();
bundle.putString(INTENT_URL, url);
mFragment.setArguments(bundle);
return mFragment;
}
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_image_pre_view);
url = getArguments().getString("url");
LogUtils.i("img url = " + url);
initImage();
}
private void initImage() {
PipelineDraweeControllerBuilder controller = FrescoUtils.getPreController(url, pdvImage);
controller.setControllerListener(listener);
final GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(getResources())
.setProgressBarImage(new ImageLoadProgressBar(new ImageLoadProgressBar.OnLevelChangeListener() {
@Override
public void onChange(int level) {
if (level >= 100) {
hideLoadingDialog();
}
}
}, Color.parseColor("#90CCCCCC"))).build();
hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
pdvImage.setHierarchy(hierarchy);
pdvImage.setController(controller.build());
pdvImage.setOnPhotoTapListener(new OnPhotoTapListener() {
@Override
public void onPhotoTap(View view, float x, float y) {
if (mActivity != null)
mActivity.finish();
}
});
pdvImage.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
}
private BaseControllerListener<ImageInfo> listener = new BaseControllerListener<ImageInfo>() {
@Override
public void onFailure(String id, Throwable throwable) {
super.onFailure(id, throwable);
LogUtils.i("onFailure:" + throwable.getMessage());
ToastUtils.showSingleToast("图片加载失败");
}
@Override
public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {
super.onFinalImageSet(id, imageInfo, animatable);
LogUtils.i("onFinalImageSet");
if (imageInfo == null) {
return;
}
pdvImage.update(imageInfo.getWidth(), imageInfo.getHeight());
}
@Override
public void onSubmit(String id, Object callerContext) {
super.onSubmit(id, callerContext);
LogUtils.i("onSubmit");
}
};
}