- 关于
- 效果图
- 新增WebActivity页面
- 修改WebActivity
- 修改DiscoverFragment
- 新增BindingAdapter
- 修改MgcAdapter与LookAdapter
本篇主要讲述轮播图跳转web网页及个人新版webviewLib使用。
效果图 新增WebActivity页面添加webview引用:
implementation 'com.github.Tobeyr1:webLoading:1.0.1'
该lib使用详情参考《WebLoading开源库,支持https访问》
添加activity_web.xml
修改WebActivity
修改Constant.java
public static final String BANNER_URI = "BANNER_URI";
public class WebActivity extends BaseActivity {
private ActivityWebBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityWebBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
initView();
}
private void initView() {
binding.web.setSettings(this);
String url = getIntent().getStringExtra(BANNER_URI);
binding.web.getTitle(title ->{
binding.viewTitle.tvTitle.setText(title);
binding.viewTitle.tvTitle.setVisibility(View.VISIBLE);
return null;
});
binding.web.setUrl(url);
binding.viewTitle.ivBack.setOnClickListener(view -> {
if (ClickUtil.enableClick()){
finish();
}
});
}
@Override
protected void onPause() {
super.onPause();
binding.web.setPause();
}
@Override
protected void onResume() {
super.onResume();
binding.web.setResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
binding.web.setDestroy();
}
}
修改DiscoverFragment
private void initData(List新增BindingAdapterbanners) { binding.bannerImg.setAdapter(new bannerAdapter(banners)) .addBannerLifecycleObserver(getViewLifecycleOwner()) .setIntercept(false) //不拦截事件 .setBannerRound(10f)//圆角 .setIndicator(new RectangleIndicator(getContext())) //线条指示器 .setIndicatorHeight(5) .setIndicatorWidth(6,6)//选中下宽度一致 .setIndicatorGravity(IndicatorConfig.Direction.CENTER) .setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(Object data, int position) { if (banners.get(position).getUrl() != null){ startActivity(new Intent(getActivity(), WebActivity.class) .putExtra(BANNER_URI,banners.get(position).getUrl())); } } }); }
新增BindingAdapter用来databinding中页面的自定义加载:
public class BindingAdapter {
//加载圆形图片
@androidx.databinding.BindingAdapter({"imSrc", "error"})
public static void loadUrl(ImageView view, @Nullable String url, Drawable error) {
if (url != null) {
RequestOptions options = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.circleCrop();
Glide.with(view.getContext())
.load(url)
.transition(DrawableTransitionOptions.withCrossFade())
.error(error)
.apply(options)
.into(view);
}
}
//加载圆角图片
@androidx.databinding.BindingAdapter(value = "rectangleSrc")
public static void loadRadiusImage(ImageView view,@Nullable String url){
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.ic_banner_loading)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.transform(new CenterCrop(),new RoundedCorners(10))
.error(R.mipmap.ic_launcher);
Glide.with(view.getContext())
.load(url)
.transition(DrawableTransitionOptions.withCrossFade())
.apply(options)
.into(view);
}
@androidx.databinding.BindingAdapter(value = "onsingleclick")
public static void onSingleClick(View view, final Function0 function){
view.setOnClickListener(v -> {
if (ClickUtil.enableClick()){
function.invoke();
}
});
}
}
修改MgcAdapter与LookAdapter
//使用其替换注释代码 BindingAdapter.loadRadiusImage(holder.imRecommend,bean.getUiElement().getImage().getImageUrl());
下一篇主要介绍封装的MusicPlay播放功能。
暑期编程PK赛 得CSDN机械键盘等精美礼品!


