无限轮播小圆点
来源:互联网 发布:阿里云优惠码在哪里看 编辑:程序博客网 时间:2024/04/29 20:28
首先写三个xml文件放到drawable-hdpi里面分别设置小点的:1.dot_focus.xml[html] view plain copy<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <!-- 描边 --> <stroke android:width="1dip" android:color="#0000FF" /> <!-- 填充色 --> <solid android:color="#FF6600" /> <!-- 设置宽度和高度相同,这样就变成了圆 --> <size android:height="10dip" android:width="10dip" /> </shape> 2.dot_unfocus.xml[html] view plain copy<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <!-- 描边 --> <stroke android:width="1dip" android:color="#0000FF" /> <!-- 填充色 --> <solid android:color="#FFFFFF" /> <!-- 设置宽度和高度相同,这样就变成了圆 --> <size android:height="10dip" android:width="10dip" /> </shape> 3.x_dot_selector.xml[html] view plain copy<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 选中时 --> <item android:drawable="@drawable/dot_focus" android:state_checked="true"/> <!-- 非选中时 --> <item android:drawable="@drawable/dot_unfocus"/> </selector> 4.mian里的xml文件的写[html] view plain copy<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.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="fill_parent" android:layout_height="130dip" /> <RadioGroup android:id="@+id/rg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBottom="@id/vp" android:gravity="center" android:orientation="horizontal" > </RadioGroup> </RelativeLayout> 5.Activity写代码[java] view plain copypackage import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.graphics.RadialGradient; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.LayoutParams; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends Activity { private String[] paths = new String[] { "http://img1.3lian.com/2015/w7/98/d/22.jpg", "http://img1.3lian.com/2015/w7/98/d/1.jpg", "http://img1.3lian.com/2015/w7/98/d/2.jpg", "http://img1.3lian.com/2015/w7/98/d/3.jpg", "http://img1.3lian.com/2015/w7/98/d/4.jpg", "http://img1.3lian.com/2015/w7/98/d/21.jpg", }; private RadioGroup rg; private ViewPager vp; Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { int currentItem = vp.getCurrentItem(); vp.setCurrentItem(currentItem += 1); handler.sendEmptyMessageDelayed(0, 1000); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); vp.setAdapter(new MyPagerAdapter(this, paths)); initView(); vp.setCurrentItem(Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2 % paths.length); handler.sendEmptyMessageDelayed(0, 1000); } private void initView() { initDots(); vp.setOnPageChangeListener(new OnPageChangeListener() { @Override//显示第几页 public void onPageSelected(int arg0) { rg.check(arg0 % paths.length); } @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 initDots() { int wrap = RadioGroup.LayoutParams.WRAP_CONTENT; RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(wrap, wrap); params.leftMargin = 5; rg = (RadioGroup) findViewById(R.id.rg); for (int i = 0; i < paths.length; i++) { RadioButton rb = new RadioButton(this); rb.setId(i); rb.setButtonDrawable(R.drawable.x_dot_selector); if (i != 0) { // 如果是第一个时,不需要加左边距 rg.addView(rb, params); } else { rg.addView(rb); } rg.check(0); } } } 6.适配器写内容 [java] view plain copypackage com. import com.lidroid.xutils.BitmapUtils; import android.content.Context; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager.LayoutParams; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; public class MyPagerAdapter extends PagerAdapter { private final Context context; private final String[] paths; private BitmapUtils bitmapUtils; public MyPagerAdapter(Context context, String[] paths) { this.context = context; // TODO Auto-generated constructor stub this.paths = paths; bitmapUtils = new BitmapUtils(context); } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } @Override public Object instantiateItem(ViewGroup container, int position) { // 得到网络图片地址 String path = paths[position % paths.length]; // 得到imageView对象 ImageView iv = new ImageView(context); LayoutParams layoutParams = new LayoutParams(); layoutParams.height = layoutParams.MATCH_PARENT; layoutParams.width = layoutParams.MATCH_PARENT; iv.setLayoutParams(layoutParams); bitmapUtils.display(iv, path); container.addView(iv); return iv; } @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) { container.removeView((View) object); } }
0 0
- 小圆点+无限轮播
- 无限轮播+小圆点
- 无限轮播+小圆点
- 无限轮播小圆点
- 小圆点无限轮播
- 无限轮播+小圆点
- ViewPager+小圆点进行无限轮播
- Viewpager自动无限轮播+小圆点
- ViewPager小圆点无限轮播
- ViewPager加小圆点无限轮播
- viewpager无限轮播、加小圆点
- ViewPager小圆点无限轮播
- ViewPager+小圆点的无限轮播
- Viewpager实现小圆点无限轮播
- ViewPager实现无限轮播+小圆点
- ViewPage无限轮播+小圆点
- 无限轮播的小圆点设置
- 无限轮播的小圆点设置
- 在线笔试中一般的标准输入输出及常见问题
- 有关ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录的删除方法
- C++中将字符或整型转换为二进制的类函数
- JAVA跨域数据提交
- 匿名内部类的demo演示(匿名内部类持有外部类的实例引用)
- 无限轮播小圆点
- 多参数监护仪有哪些功能参数?3分钟读懂
- 堆栈的一些资料
- 欢迎使用CSDN-markdown编辑器
- android.view.InflateException: Binary XML file line #13: Error inflating class com.gis.googleplay.wi
- 带头结点的链表去重
- 动态库与静态库的比较
- Android Stuido下修改包名(亲测有效!)
- openfire插件开发-简单插件