当前位置:首页 > 谈天说地 > 正文内容

android ViewPager实现一个无限轮播图

34资源网2022年02月04日 10:17296

上节我们实现了一个图片可以无限滑动的viewpager,这一节我们需要自定义一个viewpager来实现我们想要展现的布局

首先我们需要建一个包,然后新建一个java类,名字随便起

这个类我们需要随便继承自一个viewgroup就行,viewgroup就是可以存放子控件的view,我们的各种layout,比如linearlayour或者relativelayout这种可以在里面放东西的view,而textview或者imageview这种只能放内容而不能放其他view的就是普通view

然后我们选中三个构造器

package com.example.viewpager.views;
 
import android.content.context;
import android.util.attributeset;
import android.view.layoutinflater;
import android.widget.relativelayout;
 
import androidx.annotation.nonnull;
 
import com.example.viewpager.r;
 
import java.util.abstractset;
 
public class looperpager extends relativelayout {
 
    public looperpager(context context) {
 
        super(context);
    }
    public looperpager(context context,@nonnull abstractset abstrs) {
 
        super(context, (attributeset) abstrs);
    }
    public looperpager(context context,@nonnull abstractset abstrs,int defstyleattr) {
 
        super(context, (attributeset) abstrs,defstyleattr);
        
    }
 
}

 然后我们在新建一个layout文件把想要实现的布局写进去

因为我们是为viewpager实现一个无限轮播的轮播图,首先当然是写一个viewpager,然后是一个上方的标题,我们写一个textview,因为想要和悲情区分开来,我们给背景设定为红色,标题设定为白色,然后把文字居中,最后因为我们想要图片在滑动时下方有一排根据图片数量显示滑动时代表图片的标志的样式,我们设定一个在控件底部居中显示的线性布局,然后再线性布局内设定三个白色大小为5dp前后间隔为5dp的view

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:background="@color/coloraccent"//背景设为红色
    android:orientation="vertical">
 
    <androidx.viewpager.widget.viewpager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
 
    <textview
        android:id="@+id/textview2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="我是标题"
        android:background="#ffffff "//背景设为白色
        android:textalignment="center"//居中 
        />
    <linearlayout
        android:layout_centerhorizontal="true"//设为居中
        android:layout_alignparentbottom="true"//设为底部
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <view
        android:layout_width="5dp"
        android:layout_height="5dp"
            android:layout_marginleft="5dp"
            android:layout_marginright="5dp"
            android:background="#ffffff "/>
        <view
        android:layout_width="5dp"
        android:layout_height="5dp"
            android:layout_marginleft="5dp"
            android:layout_marginright="5dp"
            android:background="#ffffff "/>
        <view
        android:layout_width="5dp"
        android:layout_height="5dp"
            android:layout_marginleft="5dp"
            android:layout_marginright="5dp"
            android:background="#ffffff "/>
 
    </linearlayout>
 
 
</relativelayout>

实现效果就是这样的

 接下来就是把我们写好的自定义布局绑定我们的自定义的类,因为我们想要无论调那个构造方法最后像都让他去调我们写绑定的方法,所以我们要把其他方法里面的supper都改成this

package com.example.viewpager.views;
 
import android.content.context;
import android.util.attributeset;
import android.view.layoutinflater;
import android.widget.relativelayout;
 
import androidx.annotation.nonnull;
 
import com.example.viewpager.r;
 
import java.util.abstractset;
 
public class looperpager extends relativelayout {
 
    public looperpager(context context) {
 
        this(context,null);
    }
    public looperpager(context context,@nonnull abstractset abstrs) {
 
        this(context,  abstrs,0);
    }
    public looperpager(context context,@nonnull abstractset abstrs,int defstyleattr) {
 
        super(context, (attributeset) abstrs,defstyleattr);
        //自定义布局绑定当前类,this:当前类,ture:确定绑定
        layoutinflater.from(context).inflate(r.layout.looper_pager,this,true);
    }
 
}

 下一步就是实验我们的自定义控件有没有成功啦,

重新创建一个启动文件然后在再创建一个lauout文件

,这里我们右键刚才的looppager选择

 然后在新建的layout文件里面粘贴设定好宽和高

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".mainactivity">
 
    <com.example.viewpager.views.looperpager
        android:layout_width="match_parent"
        android:layout_height="120dp"/>
 
 
 
</relativelayout>

最后在我们新建的activity里面绑定刚才写好的layout文件

package com.example.viewpager;
 
import android.os.bundle;
import android.os.persistablebundle;
 
import androidx.annotation.nullable;
import androidx.appcompat.app.appcompatactivity;
 
public class supper_mainactivity extends appcompatactivity {
    @override
    public void oncreate(@nullable bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.supper_activity_main);
    }
}

效果就实现了 

但刚开始写完之后程序打开就报错,我从凌晨一点开始找错误,找到两点半发现布局文件里面的view写成小写view了,当时的心情不是一般的酸爽.....................

到此这篇关于android viewpager实现一个无限轮播图的文章就介绍到这了,更多相关android viewpager轮播图内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

看完文章,还可以用支付宝扫描下面的二维码领取一个支付宝红包,目前可领1-88元不等

支付宝红包二维码

除了扫码可以领取之外,大家还可以(复制 720087999 打开✔支付宝✔去搜索, h`o`n.g.包哪里来,动动手指就能领)。

看下图所示是好多参与这次活动领取红包的朋友:

支付宝红包

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/7029.html

分享给朋友:

相关文章

自动回复的经典句子,这11句值得收藏
自动回复的经典句子,这11句值得收藏

1、什么风把您吹来了,是timi赢了么。2、老子被钉钉绑了,要想见老子的话,就去给钉钉整个防沉溺。3、我去吃屎了,一会儿给你捎一泡。4、你好,我是自动回复,我可以陪你聊天,但是我只会这一句。5、喂,这里是比基尼海滩的蟹堡王餐厅,我正在煎放在...

50句非常励志的短句,正能量的励志句子
50句非常励志的短句,正能量的励志句子

1、人非要经历一番不同平时的劫难才能脱胎换骨,成为真正能解决问题的人。2、务须咬牙厉志,蓄其气而长其志,切不可恭然自馁也3、生活比电影狠多了,从来不给弱者安排大逆转的情节。4、即使赚得了全世界,却失去了自己,又有什么意义呢?5、不要把时间、...

名人名言大全,分享100句
名人名言大全,分享100句

名人名言100句:1、青年时种下什么,老年时就收获什么。 ——易卜生2、人并不是因为美丽bai才可爱,而是因为可爱才美丽。 ——托尔斯泰3、人的美德的荣誉比他的财富的荣誉不知大多少倍。 ——达·芬奇4、人的生命是有限的,可是,为人民服务是无...

​分享5句用薪尽火灭成语造句
​分享5句用薪尽火灭成语造句

1、入涅盘又称入灭、薪尽火灭(薪喻佛身或机缘,火喻智慧或佛身)。2、否则,咱师徒情分从此刻开始薪尽火灭。3、铲除这些非正常因素,降温楼市才能“薪尽火灭”。4、薪尽火灭:咱们的观点既是云云不同,那麼从今以后你别再来见我,从这个时候起薪尽火灭好...

古罗马大诗人贺拉斯的两句至理名言分享
古罗马大诗人贺拉斯的两句至理名言分享

1、苦难显才华,好运隐天资。2、人人皆有弱点,谁若想要寻个没有缺点的朋友,就永远找不着他所要追寻的。...

刘强东章泽天携手布局,“大厂”为何掀起私募热潮?
刘强东章泽天携手布局,“大厂”为何掀起私募热潮?

编者按:本文来自雷达财经(ID:leidacj),创业邦经授权发布。 作者|张凯旌 编辑|深海 京东在私募股权投资上又有新动作。 11月29日,由刘强东、章泽天、李瑞玉共同持股的海南三亚天博产业私募基金管理有限公司(下称“海南天...