ImageView宽度铺满高度自适应

拿走不谢!!


import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;

public
class MatchWImage extends androidx.appcompat.widget.AppCompatImageView { public MatchWImage(Context context) { super(context); } public MatchWImage(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public MatchWImage(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Drawable d = getDrawable(); if(d!=null){ // ceil not round - avoid thin vertical gaps along the left/right edges int width = MeasureSpec.getSize(widthMeasureSpec); //高度根据使得图片的宽度充满屏幕计算而得 int height = (int) Math.ceil((float) width * (float) d.getIntrinsicHeight() / (float) d.getIntrinsicWidth()); setMeasuredDimension(width, height); }else{ super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } }

 

posted @ 2022-03-24 16:33  野生野鸡码农  阅读(388)  评论(0编辑  收藏  举报