BGABanner实现图片自适应屏幕宽度且保持原有图片比例-方法2


@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函数直接设置图片尺寸
Glide.with(context)
.load(model)
.placeholder(R.mipmap.banner_holder)
.override(banner_params.width,banner_params.height)
.into(itemView);
}

此方法是直接设置banner图片的宽高比,然后获取屏幕的宽度,再通过计算得到BGABanner的应有高度,但是在gilde加载的方式则不是使用方法1的listener方法,而是直接使用glide的override方法,这种方法优点是不用等待网络图片加载完成,直接显示应有的高度,不足之处是还没有实现读取placeholder的图片尺寸,所以要手动设置banner的尺寸比例。此方法推荐使用。

ps:BGABanner的高度一定要设置为大于0dp,如:android:layout_height="150dp",设置为wrap_content BGABanner将无法运行。

你可能感兴趣的:(BGABanner实现图片自适应屏幕宽度且保持原有图片比例-方法2)