【发布时间】:2018-10-03 21:58:51
【问题描述】:
我正在使用 fresco 在列表视图中显示图像。但是我有一个问题。
当我使用像 CENTER_CROP 这样保持纵横比的方法缩放图像时,缩放图像高度变得小于我的 simpledraweeview 的高度,simple-Drawee-View 不会自动调整大小以匹配缩放图像的大小。
- 我曾尝试使用
android:adjustViewBounds = true但它不起作用。 -
我也尝试过下面的方法,但是即使图像高度小于 simpe-drawee-view 的高度,我也想用它来计算缩放高度的 scaleY 返回 1
float[] f = new float[9] draweeView.getImageMatrix().getValues(f); float scaleY = f[Matrix.MSCALE_Y]; Log.d("App","scale y is "+ scaleY);
上面的codelet用在下面的方法中
private void loadImage(Uri fileUri,final SimpleDraweeView draweeView,int myImageHeight){
draweeView.getLayoutParams().width = displayWidth;
int selectedSize = (myImageHeight > displayWidth)? displayWidth : myImageHeight;
draweeView.getLayoutParams().height= selectedSize;
GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
.setProgressBarImage(new CircleProgressBarDrawable())
.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP)
.build();
ImageRequest requestBuilder = ImageRequestBuilder.newBuilderWithSource(fileUri)
.setProgressiveRenderingEnabled(true)
.build();
//ImagePipeline imagePipeline = Fresco.getImagePipeline();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(draweeView.getController())
.setImageRequest(requestBuilder)
.build();
draweeView.setHierarchy(hierarchy);
draweeView.setController(controller);
float[] f = new float[9]
draweeView.getImageMatrix().getValues(f);
float scaleY = f[Matrix.MSCALE_Y];
Log.d("App","scale y is "+ scaleY);
}
结果:红色表示简单的drawee 视图中未填充图像的部分。这是比例类型 FIT_CENTER。当我使用 CENTER_CROP 时,图像会填满整个图像视图,并且图像的某些部分会被切掉,我不希望这样
问:如何获得缩放的图像大小并使用它来调整我的 simpleDraweeView 的大小,或者换句话说,我怎样才能让我的 simpleDraweeView 调整它的大小?
我将不胜感激。
【问题讨论】:
标签: android facebook image fresco