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

android ViewPager实现一个无限轮播图

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

上节我们实现了一个图片可以无限滑动的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

分享给朋友:

相关文章

华梅的经典语录
华梅的经典语录

华梅,女,1951年生于天津市,祖籍无锡。现为天津师范大学美术与设计学院院长、教授、师大华梅服饰文化学研究所所长。国家人事部授衔“有突出贡献中青年专家”,享受国务院政府津贴。1997年天津市劳动模范,1998年全国教育系统巾帼建功标兵、全国...

背光键盘怎么开灯(有背光和无背光的区别)
背光键盘怎么开灯(有背光和无背光的区别)

机械键盘轴体一直是以樱桃(Cherry)最受大众欢迎,但近几年国产轴体的快速发展,让很多玩家开始享受到更“廉价”的产品。作为国内外设领军者,雷柏自产的雷柏轴已经获得众多游戏爱好者的好评。雷柏同时还有采用经典樱桃轴的产品,笔者最近收到雷柏V...

Hey,Siri 背后,隐藏着一个大问题
Hey,Siri 背后,隐藏着一个大问题

编者按:本文来自腾讯研究院(cyberlawrc),作者:白鸽,创业邦经授权发布,封面图来自图虫。 豆瓣平台上有一个名叫“人机之恋”的小组,组内成员分享的大部分内容,都是一款聊天软件 Replika 的使用心得。通过这款软件,用户可以与...

如何删掉分页符空白页(空白页的解决方法)
如何删掉分页符空白页(空白页的解决方法)

我相信大家在编辑Word文档时,一定都遇到过这种恼人的情况,好不容易编辑完文档了,却发现末尾留下了空白页,想删除都无从下手。那么到底如何快速删除Word空白页呢?今天就来教大家几招,保证让你删得干干净净! 方法一:Shift键删除空白...

适合小孩用的手机(教你一个简单的办法)
适合小孩用的手机(教你一个简单的办法)

1/12 11月15日,IPRO科技正式发布了全球首款自律智能旗舰IPRO学生手机P100,这台手机解决了家长们对“孩子玩手机”这件事的担忧,也打破了市场对学生手机的刻板印象。 2/12 3/12 IPRO 学生手机 P100 打...

win10纯净安装版推荐(windows10纯净版安装步骤)
win10纯净安装版推荐(windows10纯净版安装步骤)

今天跟大家介绍windows10的一个非常简洁的版本:Win10 LTSC版。 这个版本的亮点有很多,最突出的就是简洁。比起普通win10系统,它没有那些多余的功能。例如小娜助手、edge浏览器、还有应用商店,这些功能想必大部分用户都用不...