VerticalBannerView 是一個 android 平台下的自定義控件,通常用來展示廣告,類似淘寶頭條


VerticalBannerView

簡介:VerticalBannerView 是一個 android 平台下的自定義控件,通常用來展示廣告,類似淘寶頭條
VerticalBannerView

VerticalBannerView是一個 android 平台下的自定義控件,通常用來展示廣告,類似淘寶頭條,它的樣式如下:

Feature

  1. 可自由定義展示的內容
  2. 使用方式類似 ListView/RecyclerView
  3. 可為當前的內容添加各種事件,比如點擊打開某個頁面等

Attention

API >= 11

Usage

可以類比ListView

  1. 添加依賴

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

      
            allprojects {
                repositories {
                    ...
                    maven { url "https://jitpack.io" }
                }
            }
      
    • Add the dependency

        dependencies {
                    compile 'com.github.Rowandjj:VerticalBannerView:1.0'
            }
      
  1. 定義 item 的布局

     <?xml version="1.0" encoding="utf-8"?>
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                   android:orientation="vertical"
                   android:layout_width="match_parent"
                   android:background="#000"
                     android:gravity="center_vertical"
                   android:layout_height="60dp">
    
         <ImageView
             android:layout_marginLeft="10dp"
             android:id="@+id/iv"
             android:src="@android:drawable/ic_dialog_email"
             android:layout_width="30dp"
             android:layout_height="30dp"
             />
    
         <TextView
             android:id="@+id/tv_02"
             android:text="hello world"
             android:layout_marginLeft="10dp"
             android:textSize="16sp"
             android:layout_toRightOf="@id/iv"
             android:paddingLeft="5dp"
             android:textColor="#fff"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"/>
    
         <TextView
             android:layout_below="@id/tv_02"
             android:text="I am detail message......"
             android:layout_marginLeft="10dp"
             android:textSize="14sp"
             android:layout_centerVertical="true"
             android:layout_toRightOf="@id/iv"
             android:paddingLeft="5dp"
             android:textColor="#fff"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"/>
     </RelativeLayout>
    
  2. 實現 adapter

     public class SampleAdapter01 extends BaseBannerAdapter<Model01> {
    
         private List<Model01> mDatas;
    
         public SampleAdapter01(List<Model01> datas) {
             super(datas);
         }
    
         @Override
         public View getView(VerticalBannerView parent) {
             return LayoutInflater.from(parent.getContext()).inflate(R.layout.item_01,null);
         }
    
         @Override
         public void setItem(final View view, final Model01 data) {
             TextView tv = (TextView) view.findViewById(R.id.tv_01);
             tv.setText(data.title);
             //你可以增加點擊事件
             view.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     //比如打開 url
                     Toast.makeText(view.getContext(),data.url,Toast.LENGTH_SHORT).show();
                 }
             });
         }
     }
    
  3. 在布局中增加 view 的聲明

        <com.taobao.library.VerticalBannerView
                 android:id="@+id/banner_01"
                 android:layout_width="match_parent"
                 android:layout_height="40dp"
                 app:animDuration="900" ---->動畫間隔 900ms
                 app:gap="2000"/> ----->切換時長 2000ms
    
  4. 設置 Adapter 並啟動

     List<Model01> datas02 = new ArrayList<>();
     datas02.add(new Model01("Life was so beautiful","--->Life was so beautiful,"));
     datas02.add(new Model01("From morning to evening","--->From morning to evening"));
     datas02.add(new Model01("We enjoyed the road to school","--->We enjoyed the road to school,"));
     datas02.add(new Model01("Birds chirped and Peace lingered","--->Birds chirped and Peace lingered"));
     final SampleAdapter02 adapter02 = new SampleAdapter02(datas02);
     final VerticalBannerView banner02 = (VerticalBannerView) findViewById(R.id.banner_02);
     banner02.setAdapter(adapter02);
     banner02.start();
    
  5. 更新數據

     List<Model01> newData = new ArrayList<>();
     newData.add(new Model01("鋤禾日當午","--->鋤禾日當午"));
     newData.add(new Model01("汗滴禾下土","--->汗滴禾下土"));
     newData.add(new Model01("誰知盤中餐","--->誰知盤中餐"));
     newData.add(new Model01("粒粒皆辛苦","--->粒粒皆辛苦"));
     adapter02.setData(newData);
    
  6. 停止

     banner02.stop();

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com