为什要做网站,网站开发 问题解决,页游网站如何做推广,wordpress 插件player前面讲了如何使用ViewPager来做多个可滑动的页面。今天在页面的下面加上一排小圆点#xff0c;用于指示当前在第几页。效果如下#xff08;请忽略颜色和图案#xff09;#xff1a; 一、产生一个小圆点的视图
1、在drawable下产生一个选中和不选中颜色不同的小圆点形状用于指示当前在第几页。效果如下请忽略颜色和图案 一、产生一个小圆点的视图
1、在drawable下产生一个选中和不选中颜色不同的小圆点形状shapedot.xml。
?xml version1.0 encodingutf-8?
selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:state_selectedtrueshape android:shapeovalsolid android:colorcolor/purple_200 /corners android:radius8dp //shape/itemitem android:state_selectedfalseshape android:shapeovalsolid android:colorcolor/white /corners android:radius8dp //shape/item
/selector
2、产生合适大小的小圆点视图ImageViewdot_view.xml
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:padding5dpImageViewandroid:idid/v_dotandroid:layout_width10dpandroid:layout_height10dpandroid:srcdrawable/dot//LinearLayout
二、修改主视图在ViewPager下面加入一个线性视图 为了能在背景图上显示小圆点我们用一个RelativeLayout来将ViewPager和一个LinearLayout放在一起LinearLayout放在中央下方。 这个LinearLayout就是我们准备用于放置一排小圆点的容器。
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_height100dpandroid:background#FFFFFFandroid:orientationverticalandroidx.viewpager.widget.ViewPagerandroid:idid/viewpagerandroid:layout_widthmatch_parentandroid:layout_heightwrap_content /LinearLayoutandroid:idid/dots_containerandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_alignParentBottomtrueandroid:gravitycenterandroid:orientationhorizontal //RelativeLayout/LinearLayout
三、动态选中小圆点选中变色
1、定义一个变量记录滑动前是第几页
2、动态生成一排小圆点并选中第一个
3、设置PageChange事件监听器当滑动页面时选中新的小圆点
public class MainActivity extends AppCompatActivity {// 记录滑动前是第几页private int currentIndex 0;// 定义引导页图片数组private int[] imageArray {R.drawable.yingdao1, R.drawable.yingdao2,R.drawable.yingdao3, R.drawable.yingdao4};Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager viewPager findViewById(R.id.viewpager);MyPagerAdapter adapter new MyPagerAdapter(this, imageArray);viewPager.setAdapter(adapter);// 动态生成小圆点LinearLayout linearLayoutDots findViewById(R.id.dots_container);for (int i 0; i imageArray.length; i) {linearLayoutDots.addView(LayoutInflater.from(this).inflate(R.layout.dot_view, null));}// 选中第一页linearLayoutDots.getChildAt(0).setSelected(true);// 添加PageChange监听器viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}Overridepublic void onPageSelected(int position) {linearLayoutDots.getChildAt(currentIndex).setSelected(false);linearLayoutDots.getChildAt(position).setSelected(true);currentIndex position;}Overridepublic void onPageScrollStateChanged(int state) {}});}
}