activity:
package com.example.caidanliandong;
import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.caidanliandong.adapter.LunBoAdapter;
import com.example.caidanliandong.bean.LunBoBean;
import com.example.caidanliandong.presenter.OtherPresenterimpl;
import com.example.caidanliandong.view.OtherView;
import java.util.ArrayList;
import java.util.List;
public class OtherActivity extends AppCompatActivity implements OtherView{
private TextView other_title;
private ViewPager view_pager;
private OtherPresenterimpl otherPresenterimpl;
private LunBoAdapter lunBoAdapter;
private List<LunBoBean.DataBean> data;
@SuppressLint("HandlerLeak")
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
int currentItem = view_pager.getCurrentItem();
view_pager.setCurrentItem(currentItem+1);
pointChange((currentItem+1)%data.size());
handler.sendEmptyMessageDelayed(0,2000);
}
}
};
private ArrayList<ImageView> images;
private LinearLayout linear_layout;
private void pointChange(int i) {
for (int j=0;j<images.size();j++) {
if (i == j) {
images.get(j).setImageResource(R.drawable.red);
} else {
images.get(j).setImageResource(R.drawable.white);
}
}
}
private int size;
//https://www.zhaoapi.cn/quarter/getAd
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
//初始化控件
other_title = findViewById(R.id.other_title);
linear_layout = findViewById(R.id.linear_layout);
view_pager = findViewById(R.id.view_pager);
//获取传过来的数据
String title = getIntent().getStringExtra("goods");
other_title.setText(title);
otherPresenterimpl = new OtherPresenterimpl(this);
otherPresenterimpl.getData();
images = new ArrayList<>();
}
@Override
public void onSuccess(final LunBoBean lunBoBean) {
data = lunBoBean.getData();
if( data!=null){
runOnUiThread(new Runnable() {
@Override
public void run() {
lunBoAdapter = new LunBoAdapter(OtherActivity.this,data);
view_pager.setAdapter(lunBoAdapter);
size = data.size();
point(size);
handler.sendEmptyMessageDelayed(0,2000);
}
});
}
}
private void point(int size) {
for (int i=0;i<size;i++) {
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
if (i == 0) {
imageView.setImageResource(R.drawable.red);
} else {
imageView.setImageResource(R.drawable.white);
}
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(30, 30);
linear_layout.addView(imageView,params);
images.add(imageView);
}
}
@Override
public void onError(int code) {
}
}
adapter:
package com.example.caidanliandong.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.example.caidanliandong.bean.LunBoBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
* Created by 小薇 on 2018/7/22.
*/
public class LunBoAdapter extends PagerAdapter{
private Context context;
private List<LunBoBean.DataBean> dataBeans;
public LunBoAdapter(Context context, List<LunBoBean.DataBean> dataBeans) {
this.context = context;
this.dataBeans = dataBeans;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(dataBeans.get(position%dataBeans.size()).getIcon(),imageView);
// Glide.with(context).load(dataBeans.get(position%dataBeans.size())).into(imageView);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View)(object));
}
}
本文介绍了一种使用自定义视图适配器实现轮播图的方法,包括Handler消息处理机制来自动切换图片,以及通过LinearLayout显示指示器以指示当前轮播位置。
4993

被折叠的 条评论
为什么被折叠?



