我有一堆drawables,我想用壁画加载,我想使用wrap_content这些图像的大小,我怎么能在壁画的xml中做到这一点?或者,如果不可能使用xml,您如何在代码中执行此操作?
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/myImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fresco:placeholderImage="@mipmap/myImage"/>
Run Code Online (Sandbox Code Playgroud)
除非我设置固定大小,否则上述代码无效.
我正在使用 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);
Run Code Online (Sandbox Code Playgroud)上面的小代码在下面的方法中使用
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 = …Run Code Online (Sandbox Code Playgroud)