图片轮播+小圆点

package com.bwie.viewpager;


import java.util.ArrayList;
import java.util.List;


import com.lidroid.xutils.BitmapUtils;


import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;


public class MainActivity extends Activity {


private ViewPager vp_view;
private ImageView iv_img;
private List<String> list;
private LinearLayout ll_layout;
private int lastindex;


private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
if (msg.what==100) {
int currentItem = vp_view.getCurrentItem();
currentItem++;
vp_view.setCurrentItem(currentItem);
play();
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList<String>();
list.add("http://t12.baidu.com/it/u=176596478,1719464859&fm=59");
list.add("http://t10.baidu.com/it/u=4010714787,2970343447&fm=59");
list.add("http://t11.baidu.com/it/u=2520234337,3270250852&fm=59");
list.add("http://t10.baidu.com/it/u=2395220391,4053197141&fm=59");
vp_view=(ViewPager)findViewById(R.id.vp_view);
vp_view.setAdapter(new PagerAdapter() {


@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=View.inflate(MainActivity.this, R.layout.view, null);
iv_img=(ImageView)view.findViewById(R.id.iv_img);
BitmapUtils bitmapUtils=new BitmapUtils(MainActivity.this);
bitmapUtils.display(iv_img, list.get((position)%list.size()));
container.addView(view);
return view;
}

@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView((View) object);
}
});
vp_view.setCurrentItem(list.size()*10000);
play();
ll_layout=(LinearLayout)findViewById(R.id.ll_layout);
for (int i = 0; i < list.size(); i++) {
//创建指示点
ImageView imageView=new ImageView(MainActivity.this);
//设置指示点的背景
imageView.setBackgroundResource(R.drawable.point_bg);
//得到布局设置参数的对象,该对象的类型取决于当前view的父view
LayoutParams layoutParams=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
//设置指示点的间距,当前设置的是到左边控件的距离
layoutParams.leftMargin=15;
//给指示点设置参数
imageView.setLayoutParams(layoutParams);
//把imageView装进linearLayout布局中
ll_layout.addView(imageView);
//设置指示点的初始状态,当指示点是第一个的时候,设置成选中状态,其余的都是不选中
if (i==0) {
imageView.setEnabled(true);
}else{
imageView.setEnabled(false);
}
}
vp_view.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
int index=position%list.size();
//通过角标,得到linearLayout的子控件,设置当前指示点的选择状态
ll_layout.getChildAt(index).setEnabled(true);
//设置上一个指示点的选择状态
ll_layout.getChildAt(lastindex).setEnabled(false);
//记录上一个角标位置
lastindex=index;
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int arg0) {

}
});
}
private void play() {
handler.sendEmptyMessageDelayed(100, 1000);
}

}

//false时使用

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval">
    
    <size android:width="10dp" android:height="10dp"/>
    <solid android:color="#808080"/>


</shape>


//true时使用

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval">
    
    <size android:width="10dp" android:height="10dp"/>
    <solid android:color="#000000"/>
    


</shape>



//drawable布局

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" android:drawable="@drawable/true_123"></item>
<item android:state_enabled="false" android:drawable="@drawable/false_"></item>
</selector>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值