android – SimpleDraweeView在壁画中缩放图像后没有调整大小

我正在使用壁画在列表视图中显示图像.但是我有一个问题.

当我使用保持宽高比如CENTER_CROP的方法缩放我的图像,并且缩放的图像高度变得小于我的simpledraweeview的高度时,简单的Drawee-View不会自动调整大小以匹配缩放图像的大小.

>我尝试使用android:adjustViewBounds = true但它不起作用.
>我也尝试了下面的方法,但是我想用来计算缩放高度的scaleY即使在图像高度小于simpe-drawee-view的高度时也会返回1

float[] f = new float[9]
draweeView.getImageMatrix().getValues(f);
float scaleY = f[Matrix.MSCALE_Y];
Log.d("App","scale y is "+ scaleY);

上述共聚物用于下述方法中

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视图的部分.这是Scale类型FIT_CENTER.当我使用CENTER_CROP时,图像会填满整个图像视图,图像的某些部分会被切掉,我不希望这样

fresco simpe drawee view not resizing

问:我如何获得缩放的图像大小并使用它来调整我的simpleDraweeView的大小,换句话说,我如何让我的simpleDraweeView调整它的大小?

我将不胜感激任何帮助.

最佳答案
我强烈建议您阅读Fresco文档.你在这里已经回答了所有问题.

Drawee视图不支持ImageView属性(adjustViewBounds,getImageMatrix等).见documentation.

再次阅读文档here中的内在尺寸.

如果您确实需要动态调整视图大小,并且具有所带来的所有缺点,则可以使用控制器侦听器执行此操作,如here所述.

希望有帮助并让我知道你是否还有其他问题.

转载注明原文:android – SimpleDraweeView在壁画中缩放图像后没有调整大小 - 代码日志