弧形ViewPager

本文介绍如何创建弧形的ViewPager,用于制作具有新鲜感的电商平台Banner。通过布局设置和效果展示,详解弧形Banner的实现过程。
摘要由CSDN通过智能技术生成

我们常在电商平台看到的Banner是弧形的,这是怎么实现的呢?其实实现非常的简单,请接着往下看。老规矩,先上效果图:

是不是这样的Banner很有新鲜感呢?

/**
 * Created by csc on 2018/6/13.
 * information:有弧度ImageView(注意使用的时候需要灵活使用,主要的是适当的修改一下偏移量offset即可满足需求)
 */
class ArcImageView(context: Context) : AppCompatImageView(context){

    lateinit var mPaint: Paint
    lateinit var mPath: Path

    lateinit var mContext: Context

    //控件的宽
    var mWidth:Float=0F
    //控件的高
    var mHeight:Float=0F

    //偏移量(注意在程序中需要适当的修改一下偏移量才能满足你的需求)
    var offset:Float=80F

    constructor(context: Context,attrs: AttributeSet): this(context) {
        mContext=context

    }

    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
        super.onSizeChanged(w, h, oldw, oldh)

        mWidth=w.toFloat()
        mHeight=h.toFloat()

        mPath = Path()
        mPaint = Paint(Paint.ANTI_ALIAS_FLAG)
        //设置弧形下部分需要填充的颜色
        mPaint.color = Color.WHITE
        mPaint.style = Paint.Style.FILL_AND_STROKE

    }



    override fun onDraw(canvas: Canvas?) {
        super.onDraw(canvas)

        //控制着幅度的高度(这个主要控制弧形的高度,如果想要幅度大一点,就把这个值修改大一些即可)
        var h:Float=(mHeight/8)*7

        mPath.moveTo(0F,h)

        /***
         * 二阶贝塞尔曲线
         *
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值