Android slider加载网络图片的框架

android中使用slider加载网络图片,众所周知,在开发App的时候,差不多每个app的主页面的搭建都少不了广告轮播,广告轮播,我们可以手动轮播,也可以让其自动轮播,这都是可以的,当我们使用ViewPager来实现轮播时,代码比较多,还需要适配器,有时候稍微不细心就会出现各种bug,那么接下来我来介绍一种代码简单,实现效果更好的一个框架slider

首先我们需要导入依赖:

    compile 'com.squareup.picasso:picasso:2.3.2'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.slider:library:1.1.5@aar'

然后下一下activity_main代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.mysliderdemo.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="300dp">

        <com.daimajia.slider.library.SliderLayout
            android:id="@+id/slider"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            >

            <com.daimajia.slider.library.Indicators.PagerIndicator
                android:id="@+id/custom_indicator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="10dp"
                custom:selected_color="@color/colorPrimary"
                custom:selected_height="3dp"
                custom:selected_padding_left="2dp"
                custom:selected_padding_right="2dp"
                custom:selected_width="16dp"
                custom:shape="rect"
                custom:unselected_color="#55333333"
                custom:unselected_height="3dp"
                custom:unselected_padding_left="2dp"
                custom:unselected_padding_right="2dp"
                custom:unselected_width="16dp"
                />

        </com.daimajia.slider.library.SliderLayout>
    </RelativeLayout>

</LinearLayout>

接下来就是MainActivity代码了

package com.example.mysliderdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.daimajia.slider.library.Animations.DescriptionAnimation;
import com.daimajia.slider.library.Indicators.PagerIndicator;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;

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

public class MainActivity extends AppCompatActivity {

    private SliderLayout sliderLayout;
    private PagerIndicator indicator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initImageSlider();
    }
    /**
     * 初始化首页的商品广告条
     */
    private void initImageSlider() {

        sliderLayout = (SliderLayout) findViewById(R.id.slider);
        indicator = (PagerIndicator) findViewById(R.id.custom_indicator);

        //准备好要显示的数据
        List<String> imageUrls = new ArrayList<>();
        final List<String> descriptions = new ArrayList<>();
        imageUrls.add("http://img.tupianzj.com/uploads/allimg/161126/16-161126140033.jpg");
        imageUrls.add("http://img.tupianzj.com/uploads/allimg/170125/9-1F125162103-50.jpg");
        imageUrls.add("http://img.idol001.com/middle/2016/09/10/333786b8210491945f182798c5a03bdd1473504572.jpg");
        imageUrls.add("http://img.tupianzj.com/uploads/allimg/161214/16-1612141401090-L.jpg");
        descriptions.add("王妍之");
        descriptions.add("迪丽热巴");
        descriptions.add("赵丽颖");
        descriptions.add("陈钰琪");

        for (int i = 0; i < imageUrls.size(); i++) {
            //新建三个展示View,并且添加到SliderLayout
            TextSliderView tsv = new TextSliderView(this);
            tsv.image(imageUrls.get(i)).description(descriptions.get(i));
            final int finalI = i;
            tsv.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
                @Override
                public void onSliderClick(BaseSliderView slider) {
                    Toast.makeText(MainActivity.this, descriptions.get(finalI), Toast.LENGTH_SHORT).show();
                }
            });
            sliderLayout.addSlider(tsv);
        }

        //对SliderLayout进行一些自定义的配置
        sliderLayout.setCustomAnimation(new DescriptionAnimation());
        sliderLayout.setPresetTransformer(SliderLayout.Transformer.Accordion);
        sliderLayout.setDuration(2000);
        //      sliderLayout.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
        sliderLayout.setCustomIndicator(indicator);
    }

}

代码就写完了,接下来看下效果吧:
这里写图片描述

好了就是这样,下期将写另一种加载图片的控件。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是阿亮啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值