public void setInitScaleType(int initScaleType) { if (mSSIV == null) { return; } mInitScaleType = initScaleType; switch (initScaleType) { case INIT_SCALE_TYPE_CENTER_CROP: mSSIV.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP); break; case INIT_SCALE_TYPE_CUSTOM: mSSIV.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM); break; case INIT_SCALE_TYPE_START: mSSIV.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_START); break; case INIT_SCALE_TYPE_CENTER_INSIDE: default: mSSIV.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE); break; } if (mDisplayOptimizeListener != null) { mDisplayOptimizeListener.setInitScaleType(initScaleType); } }
@Override protected void initValues() { sliderIv.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP); sliderIv.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_CENTER); Bundle bundle = getArguments(); if (bundle != null) { mUrl = bundle.getString(URL); mWidth = bundle.getInt(SIZE_WIDTH); mHeight = bundle.getInt(SIZE_HEIGHT); } KLog.d("mUrl:" + mUrl); loadImageBitmap(mUrl); }
private SubsamplingScaleImageView getLongImageView(ImageSource imageSource, File file, int orientation, float hScale) { SubsamplingScaleImageView imageView = new SubsamplingScaleImageView(this); if (orientation == 1) {//纵向图 imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP); imageView.setImage(imageSource, new ImageViewState(0, new PointF(0, 0), SubsamplingScaleImageView.ORIENTATION_0)); } else {//横向长图 if (file != null) { //因为这里展示的是原图,不是经过fresco压缩的bitmap,这里拿到图片的原始宽高,从新计算最大缩放比 hScale = screenHeight / BitmapUtil.getImageSize(file.getAbsolutePath())[1]; } imageView.setMaxScale(hScale); imageView.setImage(imageSource); } imageView.setOnClickListener(onClickListener); //图片下载完成并且开启图片保存才给长按保存 imageView.setOnLongClickListener(this); return imageView; }
/** * 加载超长图 */ private SubsamplingScaleImageView loadLongPhoto(File file, int orientation, int hScale) { SubsamplingScaleImageView imageView = new SubsamplingScaleImageView(this); imageView.setOnClickListener(onClickListener); imageView.setBackgroundColor(getResources().getColor(android.R.color.black)); if (file != null && file.exists()) { if (orientation == 1) {//纵向图 imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP); imageView.setImage(ImageSource.uri(file.getAbsolutePath()), new ImageViewState(0, new PointF(0, 0), SubsamplingScaleImageView.ORIENTATION_0)); } else { imageView.setMaxScale(hScale); imageView.setImage(ImageSource.uri(file.getAbsolutePath())); } } else { imageView.setImage(ImageSource.resource(R.mipmap.failure_image)); } return imageView; }
imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP);