Android进阶之路

来源:互联网 发布:1 10月进出口数据 编辑:程序博客网 时间:2024/06/07 02:24

阅读与使用此文知识,仅需5-15分钟

在没有成为巨人之前,至少我们可以看起来像个巨人。

使用Github上码者已经封装好的三方控件-RollPagerView,快速的实现轮播效果。

在此之前我写代码的时候,往往会写很多东西,需要shape点的颜色大小,同时创建多个List用于存储数据,而且进行数据连接,经常会出现一些小问题,当前这个RollPagerView的原理和我们平常写的是轮播原理是一样的,只不过更方便使用,或许5分钟我们就已经集成完毕了,下面请进入Code Timer 。

Effect :

这里写图片描述

原作者的Github地址:

https://github.com/Jude95/RollViewPager#usage

build.gradle 添加:

compile 'com.jude:rollviewpager:1.4.6'

在需要使用轮播的地方,使用我们引用的第三方控件:

 <com.jude.rollviewpager.RollPagerView        android:layout_margin="3dp"        android:id="@+id/carousel_image"        android:layout_width="match_parent"        android:layout_height="180dp"        app:rollviewpager_play_delay="3000"/>

MainActivity:

package com.example.carouselimage;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.Toast;import com.jude.rollviewpager.OnItemClickListener;import com.jude.rollviewpager.RollPagerView;import com.jude.rollviewpager.adapter.StaticPagerAdapter;import com.jude.rollviewpager.hintview.ColorPointHintView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private RollPagerView mCarousel;    private List imagesList=new ArrayList();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        mCarousel = (RollPagerView) findViewById(R.id.carousel_image);        imagesList.add(R.drawable.img_1);        imagesList.add(R.drawable.img_2);        imagesList.add(R.drawable.img_3);        imagesList.add(R.drawable.img_4);        imagesList.add(R.drawable.img_5);        //设置轮播图下的点的颜色        mCarousel.setHintView(new ColorPointHintView(this,Color.RED,Color.WHITE));        //设置图片轮播时间        mCarousel.setPlayDelay(2000);        //设置动画的持续时间        //设置动画后很别扭,取消与否在与自己        // mCarousel.setAnimationDurtion(2000);        mCarousel.setAnimationDurtion(0);        //设置适配器        mCarousel.setAdapter(new OurAdapter(imagesList));        //子条目点击        mCarousel.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(int position) {                Toast.makeText(MainActivity.this,"This item is "+position,Toast.LENGTH_LONG).show();            }        });    }    public class OurAdapter extends StaticPagerAdapter{        List lists=new ArrayList();        public OurAdapter(List lists) {            this.lists = lists;        }        @Override        public View getView(ViewGroup container, int position) {            ImageView imageView = new ImageView(container.getContext());            imageView.setImageResource((Integer) lists.get(position));            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);            imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));            return imageView;        }        @Override        public int getCount() {            return lists.size();        }    }

MainActivity Xml :

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.carouselimage.MainActivity">    <com.jude.rollviewpager.RollPagerView        android:layout_margin="3dp"        android:id="@+id/carousel_image"        android:layout_width="match_parent"        android:layout_height="180dp"        app:rollviewpager_play_delay="3000"/></LinearLayout>
1 0
原创粉丝点击