[Android Studio 30天自我挑战] 透过Banner来轮播广告资讯

现在常常在手机或是电脑网页中会在页面中的一部分会看到不同的广告,
这篇我们运用banner在画面中显示广告并自动换页,banner是用来图片轮播的方式来展示

首先要先在Gradle Scripts/build.gradle(.app)的dependencies下新增banner

implementation 'com.youth.banner:banner:1.4.10'

现在xml档设定好要将banner位置放在哪里:

<?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.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="150dp" />
</RelativeLayout>

因为新增的图片是由网路上引用的,所以在app/manifests/AndroidManifest.xml里新增

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

接着回到MainActivity.java里设定

package com.example.ad;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;
import com.youth.banner.loader.ImageLoaderInterface;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private Banner banner;
    private List<String> mListImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Banner banner = (Banner)findViewById(R.id.banner);
        ArrayList<String> images = new ArrayList<>();
        
        //将想要轮播的广告图片网址新增
        images.add("https://i.ytimg.com/vi/HuhkUIYRryA/maxresdefault.jpg");
        images.add("https://mrmad.com.tw/wp-content/uploads/2021/03/apple-iphone-12-cook-and-fumble.jpg");
        banner.setImageLoader(new GlideIamgeLoader());
        banner.setImages(images);
        //想要多久自动换页
        banner.setDelayTime(3000);
        banner.start();
    }

    public class GlideIamgeLoader extends ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView){
            Glide.with(context).load(path).into(imageView);
        }
    }
}

这样就可以了
https://ithelp.ithome.com.tw/upload/images/20211004/20139258ck6riiN73y.png
https://ithelp.ithome.com.tw/upload/images/20211004/20139258K8chBTHtbI.png


<<:  Day 21 | 状态管理套件 MobX - 到底什麽是状态管理

>>:  【Day21】导航元件 - Drawer

Day12 Redis应用实战-String操作

启动Redis Server # 复制安装档内的redis.conf 到自己指定的路径下 cp /h...

有空再说与 TODO

前言 今天来跟大家聊聊一个轻松的话题,与先前我们提过关於时间的主题有点关系,就是当我们听到「有空再说...

程序语言篇

学资安需要会写程序吗? 最近才看到PTT有人问了类似的问题, 大致上的内容就是询问说想走资安,但不会...

k8s - 洗掉 kubernetes 环境重新来过

k8s - 洗掉 kubernetes 环境重新来过 参考资料 参考资料:在 Ubuntu 上重新安...