@@ -132,7 +132,7 @@ public class BackgroundView extends RelativeLayout {
setDefaultTransparentBackground ( ) ;
return ;
}
mIvBackground . setVisibility ( View . GONE ) ;
// 计算原图比例
@@ -211,37 +211,38 @@ public class BackgroundView extends RelativeLayout {
// 获取LinearLayout尺寸
int llWidth = mLlContainer . getWidth ( ) ;
int llHeight = mLlContainer . getHeight ( ) ;
if ( llWidth = = 0 | | llHeight = = 0 ) {
postDelayed( new Runnable ( ) {
@Override
public void run ( ) {
adjustImageViewSize( ) ;
}
} , 100 ) ;
return ;
}
// if (llWidth == 0 || llHeight == 0) {
// postDelayed(new Runnable() {
// @Override
// public void run() {
// adjustImageViewSize() ;
// }
// }, 100) ;
// return;
// }
// 计算ImageView尺寸( 保持比例, 不超出LinearLayout)
int ivWidth , ivHeight ;
if ( mImageAspectRatio > = 1 . 0f ) {
ivWidth = Math . min ( ( int ) ( llHeight * mImageAspectRatio ) , llWidth ) ;
ivHeight = ( int ) ( ivWidth / mImageAspectRatio ) ;
} else {
ivHeight = Math . min ( ( int ) ( llWidth / mImageAspectRatio ) , llHeight ) ;
ivWidth = ( int ) ( ivHeight * mImageAspectRatio ) ;
}
if ( llWidth ! = 0 & & llHeight ! = 0 ) {
// 计算ImageView尺寸( 保持比例, 不超出LinearLayout)
int ivWidth , ivHeight ;
if ( mImageAspectRatio > = 1 . 0f ) {
ivWidth = Math . min ( ( int ) ( llHeight * mImageAspectRatio ) , llWidth ) ;
ivHeight = ( int ) ( ivWidth / mImageAspectRatio ) ;
} else {
ivHeight = Math . min ( ( int ) ( llWidth / mImageAspectRatio ) , llHeight ) ;
ivWidth = ( int ) ( ivHeight * mImageAspectRatio ) ;
}
// 应用尺寸
LinearLayout . LayoutParams params = ( LinearLayout . LayoutParams ) mIvBackground . getLayoutParams ( ) ;
params . width = ivWidth ;
params . height = ivHeight ;
mIvBackground . setLayoutParams ( params ) ;
mIvBackground . setScaleType ( ScaleType . FIT_CENTER ) ; // 确保居中平铺
mIvBackground . setVisibility ( View . VISIBLE ) ;
// 应用尺寸
LinearLayout . LayoutParams params = ( LinearLayout . LayoutParams ) mIvBackground . getLayoutParams ( ) ;
params . width = ivWidth ;
params . height = ivHeight ;
mIvBackground . setLayoutParams ( params ) ;
mIvBackground . setScaleType ( ScaleType . FIT_CENTER ) ; // 确保居中平铺
mIvBackground . setVisibility ( View . VISIBLE ) ;
//LogUtils.d(TAG, "ImageView尺寸: " + ivWidth + "x" + ivHeight);
//LogUtils.d(TAG, "=== adjustImageViewSize 完成 ===");
//LogUtils.d(TAG, "ImageView尺寸: " + ivWidth + "x" + ivHeight);
//LogUtils.d(TAG, "=== adjustImageViewSize 完成 ===");
}
}
private void setDefaultTransparentBackground ( ) {