Android ViewPager+轮播图,android开发应用实战详解
作者:互联网
v.setBackgroundResource(R.drawable.indicator_selected);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(UIUtils.dip2px(6), UIUtils.dip2px(6));// dp
// -->
// px
if (i != 0) {
params.leftMargin = UIUtils.dip2px(8);
params.bottomMargin = UIUtils.dip2px(8);
} else {
v.setBackgroundResource(R.drawable.indicator_normal);// 设置默认选中
}
mPointContainer.addView(v, params);
5.2 MAX_VALUE / 3、middle % 3
表示第一个小黑点是默认的
// 给ViewPager设置中间选中的值
int middle = Integer.MAX_VALUE / 3;
int extra = middle % 3;
mViewPaper.setCurrentItem(middle - extra);
5.3 轮播图延迟时间,看看下面理解
//自动播放广告栏任务
class AutoSwitchTask implements Runnable {
// 开始轮播
public void start() {
stop();
UIUtils.postDelayed(this, 10000);//“10000”表示轮播图的第一图片开始延迟时间后轮播
}
// 停止轮播
public void stop() {
UIUtils.removeCallbacks(this);
}
@Override
public void run() {
// 让ViewPager选中下一个
int item = mViewPaper.getCurrentItem();
mViewPaper.setCurrentItem(++item);
UIUtils.postDelayed(this, 5000);//“5000”表示每一个图片延迟时间后轮播
}
}
5.4 给容器添加三个轮播图,看看下面理解
@Override
public Object instantiateItem(ViewGroup container, int position) {
position = position % 3;//三个轮播图
ImageView iv = new ImageView(MainActivity.this);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
// 给iv设置数据
iv.setImageResource(R.drawable.image1);// 设置默认图片
// 设置网络图片
if (position == 0) {
iv.setImageResource(R.drawable.image1);//第一个轮播图
// BitmapHelper.display(iv,R.drawable.image1 );
} else if (position == 1){
iv.setImageResource(R.drawable.image2);//第二个轮播图
}else {
iv.setImageResource(R.drawable.image3);//第三个轮播图
}
// BitmapHelper.display(iv, AppConfig.IMAGE_BASE_UR
L + roastingDatas.get(position).get(“ID”));
final int finalPosition = position;
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
roastingPictureClick(finalPosition);
}
});
// 给viewpager加视图
container.addView(iv);
return iv;
}
5.5 轮播图点击事件,代码如下:
//轮播图点击
private void roastingPictureClick(int position) {
Toast.makeText(this, “轮播图点击:” + position, Toast.LENGTH_SHORT).show();
}
5.6 三个小点,一个小黑点,二个小白点
@Override
public void onPageSelected(int position) {
// 页面选中时
position = position % 3;
int count = mPointContainer.getChildCount();
for (int i = 0; i < count; i++) {
View view = mPointContainer.getChildAt(i);
ublic void onPageSelected(int position) {
// 页面选中时
position = position % 3;
int count = mPointContainer.getChildCount();
for (int i = 0; i < count; i++) {
View view = mPointContainer.getChildAt(i);
标签:轮播,int,ViewPager,void,iv,UIUtils,position,Android 来源: https://blog.csdn.net/m0_66145114/article/details/122649755