切换图片

compile 'com.squareup.retrofit2:retrofit:2.0.1'
    compile 'com.squareup.retrofit2:converter-gson:2.0.1'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'
    compile 'io.reactivex:rxandroid:1.1.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
//fresco
    compile 'com.facebook.fresco:fresco:0.14.1'
    //banner
    compile 'com.youth.banner:banner:1.4.9'
//    glide
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.jakewharton:butterknife:7.0.1'

public class Api {
    public static final String BASE_URL="http://api.svipmovie.com/front/";
}
public interface ApiService {
    @FormUrlEncoded
    @POST("columns/getVideoList.do")
    Observable<MovieBean> getMovieData(@Field("catalogId") String catalogId, @Field("pnum") String pnum);

}

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //初始化fresco
        Fresco.initialize(this);
    }
}

public class HttpModel implements Imodel{
    public static final String TAG="HttpModel";

    private OnFinish onFinish;
    //定义接口
    public interface OnFinish{
        void OnFinishListener(MovieBean movieBean);
    }

    public void setOnFinish(OnFinish finish){
        this.onFinish=finish;
    }


    @Override
    public void getHttpData(String url,String catalogId,String pnum) {

        Retrofit retrofit = new Retrofit.Builder().baseUrl(url)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();
        //动态代理得到网络接口
        ApiService apiService = retrofit.create(ApiService.class);

        rx.Observable<MovieBean> movieData = apiService.getMovieData(catalogId,pnum);

        movieData.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<MovieBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "onCompleted: ");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: ");
                        e.printStackTrace();
                    }

                    @Override
                    public void onNext(MovieBean movieBean) {
                        Log.d(TAG, "onNext: "+movieBean.getCode()+"========="+movieBean.getMsg());

                        onFinish.OnFinishListener(movieBean);
                    }
                });
    }
}


public interface Imodel {
    void getHttpData(String url, String catalogId, String pnum);
}

public class MyPresenter implements HttpModel.OnFinish{


    //定义view和model接口的变量
    private final Iview iview;
    private final HttpModel httpModel;

    public MyPresenter(Iview iview) {
        this.iview = iview;
        this.httpModel = new HttpModel();
        httpModel.setOnFinish(this);
    }
    //传值到model中
    public void setMovieData(String url,String catalogId,String pnum){
        httpModel.getHttpData(url,catalogId,pnum);
    }

    @Override
    public void OnFinishListener(MovieBean movieBean) {
        //将数据传给iview的实现类
        iview.getShowData(movieBean);
    }

}

public interface Iview {
    void getShowData(MovieBean movieBean);
 }

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

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import com.bawei.bofang.api.Api;
import com.bawei.bofang.persenter.MyPresenter;
import com.bawei.bofang.view.Iview;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;

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

import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity implements Iview {

    @Bind(R.id.banner)
    Banner banner;
    @Bind(R.id.changePic)
    Button changePic;
    final String catalogId = "402834815584e463015584e539330016";
    private List<String> imageTitle;
    private List<String> imageArray;
    private int randomNumber;
    private MyPresenter myPresenter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        myPresenter = new MyPresenter(this);
          myPresenter.setMovieData(Api.BASE_URL, catalogId, randomNumber + "");
    }
    //随机数
    public static int getRandomNumber(int min, int max) {
        return new Random().nextInt(max) % (max - min + 1) + min;
    }
    @Override
    public void getShowData(MovieBean movieBean) {
        //设置图片加载集合
        imageArray = new ArrayList<>();
        //设置图片标题集合
        imageTitle=new ArrayList<>();
//        for (int i=0;i<movieBean.getRet().getList().size();i++){
//            imageArray.add(movieBean.getRet().getList().get(i).getPic().toString());
//            imageTitle.add(movieBean.getRet().getList().get(0).getTitle());
//            Log.d("main", "getShowData: "+imageArray.get(i).toString());
//        }

//        //设置图片加载集合
//        imageArray=new ArrayList<>();

//        imageArray.add("http://img3.imgtn.bdimg.com/it/u=2758743658,581437775&fm=15&gp=0.jpg");
//        imageArray.add("http://img3.imgtn.bdimg.com/it/u=2105877023,3759180926&fm=15&gp=0.jpg");
//        imageArray.add("http://img2.imgtn.bdimg.com/it/u=1876814088,3589919070&fm=15&gp=0.jpg");
        imageArray.add(movieBean.getRet().getList().get(0).getPic());
        imageArray.add(movieBean.getRet().getList().get(1).getPic());
        imageArray.add(movieBean.getRet().getList().get(2).getPic());
        imageArray.add(movieBean.getRet().getList().get(3).getPic());
        imageArray.add(movieBean.getRet().getList().get(4).getPic());
        imageArray.add(movieBean.getRet().getList().get(5).getPic());

        imageTitle.add(movieBean.getRet().getList().get(0).getTitle());
        imageTitle.add(movieBean.getRet().getList().get(1).getTitle());
        imageTitle.add(movieBean.getRet().getList().get(2).getTitle());
        imageTitle.add(movieBean.getRet().getList().get(3).getTitle());
        imageTitle.add(movieBean.getRet().getList().get(4).getTitle());
        imageTitle.add(movieBean.getRet().getList().get(5).getTitle());


        //设置banner样式
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
        //设置图片加载器
        banner.setImageLoader(new GlideImageLoader());
        //设置图片集合
        banner.setImages(imageArray);
        //设置banner动画效果
        banner.setBannerAnimation(Transformer.RotateDown);
        //设置标题集合(当banner样式有显示title时)
        banner.setBannerTitles(imageTitle);
        banner.isAutoPlay(false);
        //设置轮播时间
        banner.setDelayTime(1500);
        //设置指示器位置(当banner模式中有指示器时)
        banner.setIndicatorGravity(BannerConfig.CENTER);
        //banner设置方法全部调用完毕时最后调用
        banner.start();
    }
    @OnClick({R.id.banner, R.id.changePic})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.banner:

                break;
            case R.id.changePic:
                //生成随机数
                randomNumber = getRandomNumber(1, 108);
                break;
        }
    }
}
//values dimens
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>
 
//布局
<com.youth.banner.Banner
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="430dp" />
<Button
    android:layout_marginTop="15dp"
    android:id="@+id/changePic"
    android:layout_gravity="center_horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="换一换" />



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值