========================MainActivity对应的布局======================
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:onClick="updata"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="版本升级" />
</RelativeLayout>
=====================MainActivity======================
package com.example.day15_lunbo;
import java.util.ArrayList;
import java.util.List;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.example.adapter.MyPagerAdapter;
public class MainActivity extends Activity {
private ViewPager vp;
private LinearLayout lin;
private int[] msg;
private List<ImageView> msgList;
private List<ImageView> ivlist;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
sendMSg();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 查找控件
vp = (ViewPager) findViewById(R.id.vp);
lin = (LinearLayout) findViewById(R.id.lin);
// 图片数据
init();
// 初始化小圆点
initDot();
// 轮播
sendMSg();
// 添加适配器
vp.setAdapter(new MyPagerAdapter(MainActivity.this, msgList));
// 监听vp的滑动事件
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// 遍历小点的集合
for (int i = 0; i < ivlist.size(); i++) {
// 如果当前的索引值和i相等
if (arg0 % ivlist.size() == i) {
// 设置为亮色
ivlist.get(i).setImageResource(R.drawable.dots_focus);
} else {
// 否则为暗色
ivlist.get(i).setImageResource(R.drawable.dots_normal);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
private void sendMSg() {
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
// 延时消息
handler.sendEmptyMessageDelayed(0, 3000);
}
private void initDot() {
ivlist = new ArrayList<ImageView>();
ivlist.clear();
for (int i = 0; i < msg.length; i++) {
ImageView iv = new ImageView(this);
if (i == 0) {
// 第一张图片,默认给亮的小点
iv.setImageResource(R.drawable.dots_focus);
} else {
iv.setImageResource(R.drawable.dots_normal);
}
// 设置圆点的宽高
LayoutParams params = new LayoutParams(30, 30);
// 圆点间距、
params.setMargins(5, 0, 5, 0);
lin.addView(iv, params);
ivlist.add(iv);
}
}
private void init() {
msg = new int[] { R.drawable.aa, R.drawable.aiqin, R.drawable.b,
R.drawable.bb };
msgList = new ArrayList<ImageView>();
for (int i = 0; i < msg.length; i++) {
ImageView iv = new ImageView(MainActivity.this);
iv.setImageResource(msg[i]);
msgList.add(iv);
}
}
}
==================Update Bean包==============
package com.example.updataapp.bean;
public class Updata {
private String versionCode;
private String downloadUrl;
public String getVersionCode() {
return versionCode;
}
public void setVersionCode(String versionCode) {
this.versionCode = versionCode;
}
public String getDownloadUrl() {
return downloadUrl;
}
public void setDownloadUrl(String downloadUrl) {
this.downloadUrl = downloadUrl;
}
public Updata(String versionCode, String downloadUrl) {
super();
this.versionCode = versionCode;
this.downloadUrl = downloadUrl;
}
public Updata() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Updata [versionCode=" + versionCode + ", downloadUrl="
+ downloadUrl + "]";
}
}
=====================另外一个类aMyAdapter==============
package com.example.adapter;
import java.util.List;
import android.content.Context;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MyAdapter extends PagerAdapter {
Context context;
List<ImageView> list;
private Handler handler;
public MyAdapter(Context context, List<ImageView> list, Handler handler) {
super();
this.context = context;
this.list = list;
this.handler = handler;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
ImageView view = list.get(position%list.size());
container.removeView(view);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//通过控件集合获取imageView,添加到容器中,并作为key 返回
ImageView view = list.get(position%list.size());
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
//当按下的时候,停止轮播
case MotionEvent.ACTION_DOWN:
//移除所有的回调和消息
handler.removeCallbacksAndMessages(null);
break;
//抬起
case MotionEvent.ACTION_UP:
//取消的时候继续开始录播
handler.sendEmptyMessageDelayed(0, 2000);
break;
//取消的时候,继续轮播
case MotionEvent.ACTION_CANCEL:
handler.sendEmptyMessageDelayed(0, 2000);
break;
default:
break;
}
//false 触摸事件不被消费,true 消费该触摸事件
return true;
}
});
container.addView(view);
return view;
}
}
===========在xml里面配置权限===============
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
9027

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



