package test.bwie.com.zhuoye;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import adapters.GvAdapter;
import adapters.VpAdapter;
import bean.ResultBean;
import utils.MyTask;
public class MainActivity extends AppCompatActivity {
private ViewPager vp;
private List<ResultBean.DataBean.EssayBean> essay;
private int index = 0;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
index++;
//设置当前显示图片
vp.setCurrentItem(index);
//更新小圆点
setSelectedPoint(index % essay.size());
//延时发送消息
handler.sendEmptyMessageDelayed(1, 2000);
}
};
private GridView gv;
private ArrayList<ImageView> images;
private LinearLayout linear_point;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
gv = (GridView) findViewById(R.id.grid_view);
//显示小圆点的布局控件
linear_point = (LinearLayout) findViewById(R.id.linear_point);
MyTask myTask = new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson = new Gson();
ResultBean resultBean = gson.fromJson(jsonstr, ResultBean.class);
ResultBean.DataBean data = resultBean.getData();
essay = data.getEssay();
vp.setAdapter(new VpAdapter(essay, MainActivity.this));
vp.setCurrentItem(0);
gv.setAdapter(new GvAdapter(essay, MainActivity.this));
//初始化小圆点
initDoc();
}
});
myTask.execute("http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android");
handler.sendEmptyMessageDelayed(1, 2000);
}
/**
* 改变小圆点图片
*
* @param index 页面的下标
*/
public void setSelectedPoint(int index) {
for (int i = 0; i < images.size(); i++) {
if (i == index) {
images.get(i).setImageResource(R.drawable.point_selected);
} else {
images.get(i).setImageResource(R.drawable.point_un_selected);
}
}
}
//初始化小圆点
private void initDoc() {
images = new ArrayList<>();
for (int i = 0; i < essay.size(); i++) {
ImageView imgPoint = new ImageView(this);
//设置图片的缩放模式
imgPoint.setScaleType(ImageView.ScaleType.FIT_XY);
//设置要显示的图片
if (i == 0) {
//红色的点
imgPoint.setImageResource(R.drawable.point_selected);
} else {
imgPoint.setImageResource(R.drawable.point_un_selected);
}
//设置宽度与高度
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(40, 40);
params.setMargins(10, 0, 10, 0);
//添加到底部容器中
linear_point.addView(imgPoint, params);
//添加到集合中
images.add(imgPoint);
}
}
}
自定义两个xml文件,表示选中和未选中的状态,,drawable目录下两个相同的XML文件,改变颜色进行区分
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#f00"></solid>
</shape>