public class MainActivity extends AppCompatActivity {
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
int position = vp.getCurrentItem();
position++;
vp.setCurrentItem(position);
sendMsg();
break;
}
}
};
private List<Bean.DataBean.AdlistBean> adlist;
private ViewPager vp;
private LinearLayout ll;
private ImageView iv;
private List<ImageView> ivList;
private DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
ll = (LinearLayout) findViewById(R.id.ll);
options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
/**
* 请求json数据
*/
new Thread(){
private Bean bean;
private ByteArrayOutputStream byteArrayOutputStream;
@Override
public void run() {
super.run();
String path="http://www.meirixue.com/api.php?c=index&a=index";
try {
URL url = new URL(path);
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
byteArrayOutputStream = new ByteArrayOutputStream();
if (responseCode==200){
InputStream inputStream = connection.getInputStream();
byte[] buffer=new byte[1024];
int read = 0;
while((read = inputStream.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,read);
}
}
Gson gson = new Gson();
bean = gson.fromJson(byteArrayOutputStream.toString(), Bean.class);
adlist = bean.getData().getAdlist();
} catch (Exception e) {
e.printStackTrace();
}
/**
* 主线程更新UI
*/
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,bean.toString(),Toast.LENGTH_LONG).show();
MyViewPager myViewPager = new MyViewPager();
vp.setAdapter(myViewPager);
//初始化点
initDot();
vp.setCurrentItem(1000);
sendMsg();
viewPagerListener();
}
});
}
}.start();
}
private void viewPagerListener(){
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int x=0;x<ivList.size();x++){
if (position%adlist.size()==x){
ivList.get(position%adlist.size()).setImageResource(R.drawable.dot_fouceablel);
}else{
ivList.get(x).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化点的
*/
private void initDot(){
ivList = new ArrayList<>();
if (ivList!=null){
ivList.clear();
}
for (int x=0;x<adlist.size();x++){
iv = new ImageView(MainActivity.this);
if (x==0){
iv.setImageResource(R.drawable.dot_fouceablel);
}else{
iv.setImageResource(R.drawable.dot_normal);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(15, 15);
//设置两个点之间的距离
layoutParams.setMargins(10,0,10,0);
ll.addView(iv,layoutParams);
ivList.add(iv);
}
}
/**
* 实现自动轮播
*/
private void sendMsg(){
handler.sendEmptyMessageDelayed(0,3000);
}
/**
* ViewPager适配器
*/
class MyViewPager extends PagerAdapter{
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(adlist.get(position%adlist.size()).getImg(),imageView,options);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
}
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
int position = vp.getCurrentItem();
position++;
vp.setCurrentItem(position);
sendMsg();
break;
}
}
};
private List<Bean.DataBean.AdlistBean> adlist;
private ViewPager vp;
private LinearLayout ll;
private ImageView iv;
private List<ImageView> ivList;
private DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
ll = (LinearLayout) findViewById(R.id.ll);
options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
/**
* 请求json数据
*/
new Thread(){
private Bean bean;
private ByteArrayOutputStream byteArrayOutputStream;
@Override
public void run() {
super.run();
String path="http://www.meirixue.com/api.php?c=index&a=index";
try {
URL url = new URL(path);
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
byteArrayOutputStream = new ByteArrayOutputStream();
if (responseCode==200){
InputStream inputStream = connection.getInputStream();
byte[] buffer=new byte[1024];
int read = 0;
while((read = inputStream.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,read);
}
}
Gson gson = new Gson();
bean = gson.fromJson(byteArrayOutputStream.toString(), Bean.class);
adlist = bean.getData().getAdlist();
} catch (Exception e) {
e.printStackTrace();
}
/**
* 主线程更新UI
*/
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,bean.toString(),Toast.LENGTH_LONG).show();
MyViewPager myViewPager = new MyViewPager();
vp.setAdapter(myViewPager);
//初始化点
initDot();
vp.setCurrentItem(1000);
sendMsg();
viewPagerListener();
}
});
}
}.start();
}
private void viewPagerListener(){
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int x=0;x<ivList.size();x++){
if (position%adlist.size()==x){
ivList.get(position%adlist.size()).setImageResource(R.drawable.dot_fouceablel);
}else{
ivList.get(x).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化点的
*/
private void initDot(){
ivList = new ArrayList<>();
if (ivList!=null){
ivList.clear();
}
for (int x=0;x<adlist.size();x++){
iv = new ImageView(MainActivity.this);
if (x==0){
iv.setImageResource(R.drawable.dot_fouceablel);
}else{
iv.setImageResource(R.drawable.dot_normal);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(15, 15);
//设置两个点之间的距离
layoutParams.setMargins(10,0,10,0);
ll.addView(iv,layoutParams);
ivList.add(iv);
}
}
/**
* 实现自动轮播
*/
private void sendMsg(){
handler.sendEmptyMessageDelayed(0,3000);
}
/**
* ViewPager适配器
*/
class MyViewPager extends PagerAdapter{
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(adlist.get(position%adlist.size()).getImg(),imageView,options);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
}
}