栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android简易音乐重构MVVM Java版-新增轮播图网页链接跳转展示(十五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android简易音乐重构MVVM Java版-新增轮播图网页链接跳转展示(十五)

Android简易音乐重构MVVM Java版-新增轮播图网页链接跳转展示(十五)
    • 关于
      • 效果图
    • 新增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 banners) {
        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

  新增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机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号