ViewPager添加小圆点很简单,但是如果是网络图片可能就不太好做了,所以我这里给出一种方法,当然你也可以用其他的

1.主界面xml

<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context="com.cqytjr.www.cheji.Activity.BigImageActivity"> <android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpager"> </android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:id="@+id/ll_pager_num"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_marginBottom="45dp"
android:layout_centerHorizontal="true"
> </LinearLayout> </RelativeLayout>

activity代码:

public class BigImageActivity extends BaseActivity {

    private ViewPager pager;
private List <ImageView>list;
private LinearLayout mNumLayout;
private List<Button>pagerList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
initView();
} @Override
protected void initView() {
super.initView(); initWithData(); mNumLayout = (LinearLayout) findViewById(R.id.ll_pager_num);
pagerList = new ArrayList<Button>(); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_page_indicator);
for (int i = 0; i < list.size(); i++) {
Button bt = new Button(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); //为小圆点左右添加间距
params.leftMargin = 10;
params.rightMargin = 10;
//手动给小圆点一个大小
params.height = bitmap.getWidth();
params.width = bitmap.getHeight(); // bt.setLayoutParams(new ViewGroup.LayoutParams(bitmap.getWidth(),bitmap.getHeight()));
// bt.setBackgroundResource(R.drawable.ic_page_indicator);
mNumLayout.addView(bt,params);
pagerList.add(bt);
}
pager = (ViewPager)findViewById(R.id.viewpager); PagerAdapter adapter = new PagerAdapter() {
@Override
public int getCount() {
return list.size();
} @Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
} @Override
public Object instantiateItem(ViewGroup container, int position)
{ container.addView(list.get(position)); return list.get(position);
} @Override
public void destroyItem(ViewGroup container, int position,
Object object)
{ container.removeView(list.get(position));
} }; pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override
public void onPageSelected(int position) {
choseItem(position);
} @Override
public void onPageScrollStateChanged(int state) { }
}); pager.setAdapter(adapter);
pager.setCurrentItem(0);
choseItem(0); }
public void initWithData(){ int[]strings = {R.drawable.ic_test_0,R.drawable.ic_test_1,R.drawable.ic_test_2,
R.drawable.ic_test_3,R.drawable.ic_test_4,R.drawable.ic_test_5,R.drawable.ic_test_6}; list = new ArrayList<ImageView>();
for (int i=0;i<strings.length;i++){ ImageView imageView = new ImageView(getApplicationContext());
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(strings[i]);
list.add(imageView);
} } private void choseItem(int i){ Log.d("BigImageActivity",i+"==========="); for (Button button:pagerList){
button.setBackgroundResource(R.drawable.ic_page_indicator);
}
Button button = pagerList.get(i);
button.setBackgroundResource(R.drawable.ic_page_indicator_focused); } }

最新文章

  1. c++编程碰到的奇怪问题与解决
  2. IP地址分类与识别错误
  3. How to call C/C++ sytle function from C# solution?
  4. Git仓库创建和文件提交
  5. firemonkey ListView DynamicAppearance
  6. CTO 能力模型(简化版)
  7. 前端使用Javascrip实现图片轮播
  8. (转)SpringBoot之退出服务(exit)时调用自定义的销毁方法
  9. linux c/c++ 获取文件大小
  10. 大数据离线分析平台 JavaSDK数据收集引擎编写
  11. Python字符串颜色输出
  12. css3 loading 效果
  13. js框操作-----Selenium快速入门(八)
  14. 《精通Python设计模式》学习之建造者模式
  15. [转]解决eclipse无法设置NDK问题
  16. (转)nginx日志配置指令详解
  17. LeetCode-Largest Rectangle in Histogram O(n) 详析-ZZ
  18. 【树形DP】【P1364】医院放置
  19. jsp页面数据回显(select下拉选择框)
  20. 进程之 Process join方法其他属性与进程Queue

热门文章

  1. 【C++基础 05】友元函数和友元类
  2. c++ 转化
  3. 加L“”
  4. 1-0 superset的安装和配置
  5. 第十篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 上 )
  6. 浅谈 SSD,eMMC,UFS(转自知乎)
  7. php学习十一:组合
  8. cocos2dx游戏--欢欢英雄传说--添加人物
  9. java+socket 简易聊天工具
  10. Day05_C操作符及二进制补码计算