解決讓圖片寬度全屏高度按比例自適應填充
阿新 • • 發佈:2019-02-16
在專案中要根據在服務端生成的一張海報填充在imagview中。返回圖片寬高為750*2500。但是在手機上發現寬度不能充滿全屏。設定scaleType後圖片長度會被擷取或者長度被壓縮。然後就自定義一個imagview來顯示,完美解決。重寫onMeasure,onMeasure中程式碼如下:
Drawable drawable = getDrawable();
if(drawable!=null){
int width = MeasureSpec.getSize(widthMeasureSpec);
//高度根據使得圖片的寬度充滿螢幕計算而得
int height = (int) Math.ceil((float) width * (float) drawable.getIntrinsicHeight() / (float) drawable.getIntrinsicWidth());
setMeasuredDimension(width, height);
}else{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}