ViewPager2画廊效果

可以直接使用recycleview的adapter,注意itemview的布局要使用match_parent

MarginPageTransformer的画廊效果

        val params = viewpager2.layoutParams as ViewGroup.MarginLayoutParams
        params.leftMargin = resources.getDimension(R.dimen.dp_10).toInt()*2
        params.rightMargin = params.leftMargin
        val margin = 10.dpToPx(resources.displayMetrics)
        var compositePageTransformer = CompositePageTransformer()
        compositePageTransformer.addTransformer(MarginPageTransformer(margin))
        compositePageTransformer.addTransformer(ScaleInTransformer())
        rv_operation.setPageTransformer(compositePageTransformer)

官方dp和px转换:Android Convert Dp to Pixel - dpToPx (Kotlin)

fun Int.dpToPx(displayMetrics: DisplayMetrics): Int = (this * displayMetrics.density).toInt()

fun Int.pxToDp(displayMetrics: DisplayMetrics): Int = (this / displayMetrics.density).toInt()

使用

10.dpToPx(context.resources.displayMetrics)

你可能感兴趣的:(Kotlin)