上一篇文章介绍了计算recyclerView的均匀间隔。 基于此,在瀑布流中展示图像时,为了动态展示宽度的高度,需要知道图像的宽度的高度,并在adapter中计算宽度的高度。 此宽度的高度也可以在服务器可以获取时自己获取。
谈谈实现方法吧
要动态调整宽度和高度,请根据图像宽度和手机宽度计算比率,然后根据该比率计算imageview的高度
package com.j tech.scrollimageloaddemo; import android.app.Activity; import android.content.Context; import Android.view.layoutinflater; import android.view.View; import android.view.ViewGroup; import Android.widget.base adapter; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.j tech.adapter.recycler adapter; import com.j tech.view.recycler holder; import java.util.ArrayList; import java.util.List; /**图像适配器*关于同等间隔的recycleView *因为我们在xml文件中设置的距离是dp在代码中设置的距离是px *,所以所有给代码设置统一格式的都是同等编剧的recycler view * createded publicclassimageadapterextendsrecycleradapterimagemodel { privatebooleanisscroll=false; 私有int item width; publicimageadapter (activity activity ) (super ) activity; 要计算项目宽度的项目宽度=(device utils.get screen width (activity )-48 )/2; } publicvoidsetscroll (布尔型scroll ) { isScroll=scroll; if (! isscroll(notifydatasetchanged ); } @ overridepublicviewcreateview (layoutinflaterlayoutinflater,ViewGroup viewGroup, int i ) returnlayoutinflater.inflater } @ overridepublicvoidconvert (recyclerholder,ImageModel imageModel, int i ) imageview imageview=recyclerhodel//等比缩放doubleratio=(itemwidth*1.0 )/imageModel.getWidth; intheight=(int ) ) imageModel.getHeight ) * ratio ); view group.layoutparamslayoutparams=imageview.getlayoutparams (; layoutParams.width=itemWidth; layoutParams.height=height; imageview.setlayoutparams; //显示图片//if(isscroll )//imageview.setimageresource (r.mi pmap.IC _ launcher ); //else{glide.with(getactivity ().load (imagemodel.geturl ) ).placeholder ) r.mipmap.IC_launcher ) )。 //} }在XML中ImageView android:id='@ id/imageview ' Android : layout _ width=' match _ parent ' Android 3360 layout _ height=' wrap _ content ' Android 3360 andd
以下是博客中的示例: 请注意,Android :缩放类型fitxy "必须是fitxy。 (在本例中,它可能是centercrop,但这是错误的。 )有用于位的变更
3358 blog.csdn.net/applicaton/article/details/51705165