xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="200dp" />
<LinearLayout
android:id="@+id/ll_dots"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/viewPager" >
</LinearLayout>
</RelativeLayout>
第二部
package com.example.myrollview_8g;
import java.util.ArrayList;
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 android.widget.LinearLayout.LayoutParams;
public class MainActivity extends Activity {
private LinearLayout ll_dots;
private ViewPager viewPager;
private String[] imageUrls = new String[] {
"http://169.254.238.174:8080/ab.jpg",
"http://169.254.238.174:8080/ae.jpg",
"http://169.254.238.174:8080/af.jpg",
"http://169.254.238.174:8080/ah.jpg" };
private ArrayList<ImageView> dotsList;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 0) {
// 获取viewPager当前所在的页码索引值
int currentItem = viewPager.getCurrentItem();
currentItem++;
viewPager.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0, 2000);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
ll_dots = (LinearLayout) findViewById(R.id.ll_dots);
viewPager.setAdapter(new MyPagerAdapter(this, imageUrls,handler));
// 设置当前的一个条目值
viewPager.setCurrentItem(imageUrls.length * 5000);
initDots();
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
for (int i = 0; i < dotsList.size(); i++) {
if (i == position % imageUrls.length) {
dotsList.get(i).setImageResource(R.drawable.dots_focus);
} else {
dotsList.get(i)
.setImageResource(R.drawable.dots_normal);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
handler.sendEmptyMessageDelayed(0, 2000);
}
/**
* 初始化小圆点
*/
private void initDots() {
dotsList = new ArrayList<ImageView>();
dotsList.clear();
ll_dots.removeAllViews();
for (int i = 0; i < imageUrls.length; i++) {
// 画出圆点
ImageView imageView = new ImageView(this);
//
if (i == 0) {
imageView.setImageResource(R.drawable.dots_focus);
} else {
imageView.setImageResource(R.drawable.dots_normal);
}
// 宽和高 dp 相对像素
// 如果是真正开发,需要转成 px值 屏幕适配 dp---px
LayoutParams params = new LayoutParams(20, 20);
// 放到什么位置
params.setMargins(5, 0, 5, 0);
dotsList.add(imageView);
ll_dots.addView(imageView, params);
}
}
}
本文介绍了一个使用Android支持库实现的自动轮播图功能,并详细展示了如何通过Handler定时切换图片及设置底部指示器小圆点来显示当前轮播状态。
4592

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



