<pre>
@Override
public void fillBannerItem(final BGABanner banner, final ImageView itemView, String model, int position) {
//設置圖片寬高比
float scale = (float) 750 / (float) 320;
//獲取屏幕的寬度
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Point size = new Point();
wm.getDefaultDisplay().getSize(size);
int screenWidth = size.x;
//計算BGABanner的應有高度
int viewHeight = Math.round(screenWidth / scale);
//設置BGABanner的寬高屬性
ViewGroup.LayoutParams banner_params = banner.getLayoutParams(); banner_params.width = screenWidth;
banner_params.height = viewHeight;
banner.setLayoutParams(banner_params);
//此處使用的是glide的override函數(shù)直接設置圖片尺寸
Glide.with(context)
.load(model)
.placeholder(R.mipmap.banner_holder)
.override(banner_params.width,banner_params.height)
.into(itemView);
}
</pre>
此方法是直接設置banner圖片的寬高比转砖,然后獲取屏幕的寬度宝穗,再通過計算得到BGABanner的應有高度乔妈,但是在gilde加載的方式則不是使用方法1的listener方法吮龄,而是直接使用glide的override方法汰蓉,這種方法優(yōu)點是不用等待網(wǎng)絡圖片加載完成,直接顯示應有的高度鹏溯,不足之處是還沒有實現(xiàn)讀取placeholder的圖片尺寸旺罢,所以要手動設置banner的尺寸比例。此方法推薦使用奕扣。
ps:BGABanner的高度一定要設置為大于0dp劳坑,如:android:layout_height="150dp",設置為wrap_content BGABanner將無法運行成畦。