防止图片错乱及获取图片的宽高

//帮证图片不错乱
··
manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
···

获取图片的宽高
···
private void getWh() {
WindowManager systemService = (WindowManager) getSystemService(WINDOW_SERVICE);
Display defaultDisplay = systemService.getDefaultDisplay();
DisplayMetrics metrics=new DisplayMetrics();
defaultDisplay.getMetrics(metrics);
widthPixels = metrics.widthPixels;
heightPixels = metrics.heightPixels;
}
···
给布局图片的宽高设值
···
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) holder.ivWelfareImg.getLayoutParams();

    //宽 = 屏幕的一半
    layoutParams.width = BaseApp.widthPixels/2 - SystemUtil.dp2px(8);
    //左的边距
    layoutParams.leftMargin = SystemUtil.dp2px(4);
    //上边距
    layoutParams.topMargin = SystemUtil.dp2px(6);
    if(list.get(position).getScale()!=0){
        layoutParams.height= (int) (layoutParams.width/list.get(position).getScale());
    }
    holder.ivWelfareImg.setLayoutParams(layoutParams);
    Glide.with(context).load(list.get(position).getUrl()).into(holder.ivWelfareImg);

···

//刷新适配器( // 处理图片的宽高)
····
private void setImageWhScale() {
for (final FuLiBean.ResultsBean bean:list){
if (bean.getScale()==0){
Glide.with(context).load(bean.getUrl())
.into(new SimpleTarget() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable
Transition transition) {
int intrinsicHeight = resource.getIntrinsicHeight();
int intrinsicWidth = resource.getIntrinsicWidth();
//计算宽高比
bean.setScale(intrinsicWidth *1.0f/intrinsicHeight);
notifyDataSetChanged();
}
});

        }else{
            notifyDataSetChanged();
        }
    }
}

···

你可能感兴趣的:(防止图片错乱及获取图片的宽高)