Android 仿懒人听书的一个效果

主要设计到的就是 viewpager 的 一个参数监听

Android 仿懒人听书的一个效果

从0->0.999999 无限接近1

还有就是ColorUtils 的一些方法

Android ColorUtils_FlyPig_Vip的博客-CSDN博客_colorutils

有一个综合俩个颜色的方法 从0-1 的渐变

 private val titleColors =
        arrayOf(
            R.color.lightblue,
            R.color.lightcoral,
            R.color.lightgreen
        )

        view_pager!!.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
            override fun onPageScrolled(
                position: Int,
                positionOffset: Float,
                positionOffsetPixels: Int
            ) {
                if (positionOffset > 1) { //会出现极个别大于1的数据
                    return
                }

                val pos: Int = position % titleColors.size
                val pos1: Int = (position + 1) % titleColors.size

                val vibrantColor: Int = ColorUtils.blendARGB(
                    resources.getColor(titleColors[pos]),
                    resources.getColor(titleColors[pos1]),
                    positionOffset
                )

                magic_indicator.setBackgroundColor(vibrantColor)
            }

            override fun onPageSelected(position: Int) {
            }

            override fun onPageScrollStateChanged(state: Int) {
            }

        })

Android 仿懒人听书的一个效果

 

或者可以通过图片来拿相关的颜色 MaterialDesign 提供了专门的颜色提取器

Android Material Design 取色器Palette -颜色_FlyPig_Vip的博客-CSDN博客

上一篇:链表 -- 大二上第十周


下一篇:初学Python——Socket网络编程