简单封装弧形广告轮播图(ViewPager+贝塞尔曲线)

本文介绍了如何利用ViewPager和贝塞尔曲线创建一个弧形广告轮播图。通过四步简单操作,包括添加依赖、创建布局、在Activity中使用,即可实现效果。详细讲解了弧形图片的实现,利用二阶贝塞尔曲线原理绘制,并提供了完整代码。同时,实现了带有自动播放功能的ViewPager封装。
摘要由CSDN通过智能技术生成

前言

通过ViewPager和贝塞尔曲线实现了一个弧形广告轮播图。

效果图

弧形ViewPager

实现方法

想要实现这个效果,现在几行代码就可以了:

Step 1. Add it in your root build.gradle at the end of repositories:

allprojects {
        repositories {
            ...
            maven { url 'https://www.jitpack.io' }
        }
    }

Step 2. Add the dependency:

dependencies {
          compile 'com.github.Simon986793021:SimonArcViewTest:V1.1'
    }

Step 3. create the layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.wind.simonarcviewtest.MainActivity">
    <com.wind.arcview.HomeBanner
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:id="@+id/hb_banner">
    </com.wind.arcview.HomeBanner>
</LinearLayout>

Step 4. use it in Activity

 HomeBanner homeBanner= (HomeBanner) findViewById(R.id.hb_banner);
        homeBanner.setImagesRes(new int[]{R.drawable.banner5,R.drawable.banner5,R.drawable.banner5,R.drawable.banner5});

通过上面几步就可以实现了。

PS:
这里提供了一个额外的接口来改变图片的缩放:

ArcImageView arcImageView=new ArcImageView(this);
        arcImageView.setScale(0.5f);

下面我们再来具体分析下实现过程。

思路

我们可以把弧形ViewPager分为两个部分
1.ViewPager
2.弧形图片

原理

弧形图片是通过二阶贝塞尔曲线画出来的,我们先来看看二阶贝塞尔曲线。

二阶曲线原理:

二阶曲线由两个数据点(A 和 C),一个控制点(B)来描述曲线状态,大致如下:

这里写图片描述

上图中红色曲线部分就是传说中的二阶贝塞尔曲线,那么这条红色曲线是如何生成的呢?接下来我们就以其中的一个状态分析一下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnjoyZhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值