使用shape圖形資源製作引導頁面的提示圓點
阿新 • • 發佈:2019-02-13
在app引導介面通常有引導介面提示小圓點,下面簡單介紹一下利用shape圖形資源如何實現:
本文引導介面是使用的ViewPager,當ViewPager滑動時候可以動態的改變小圓點的顏色來提示使用者
1,在res資料夾下面建立子資料夾drawable,分別有兩個shape圖形資源,一個是預設時候,一個是選中時候
a,預設時候的shape資源:
b,選中時候的shape資源:<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="@color/defalut" /> <corners android:radius="15dp"/> </shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/blue" />
<corners android:radius="15dp"/>
</shape>
2,在xml中定義一個Linearlayout存放ImageView即小圓點
<pre name="code" class="html"> <LinearLayout android:layout_marginTop="5dp" android:id="@+id/ll_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:orientation="horizontal" > <ImageView android:layout_marginLeft="5dp" android:layout_width="15dp" android:layout_height="15dp" android:background="@drawable/guide_dot_select" /> <ImageView android:layout_marginLeft="5dp" android:layout_width="15dp" android:layout_height="15dp" android:background="@drawable/guide_dot_nomal" /> <ImageView android:layout_marginLeft="5dp" android:layout_width="15dp" android:layout_height="15dp" android:background="@drawable/guide_dot_nomal" /> <ImageView android:layout_marginLeft="5dp" android:layout_width="15dp" android:layout_height="15dp" android:background="@drawable/guide_dot_nomal" /> </LinearLayout>
3,程式碼中實現:ViewPager滑動時候改變圓點顏色
mViewPager.addOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { // TODO Auto-generated method stub for (int i = 0; i < ll_search.getChildCount(); i++) { if (i == position) { ll_search.getChildAt(i).setBackgroundResource(R.drawable.guide_dot_select); } else { ll_search.getChildAt(i).setBackgroundResource(R.drawable.guide_dot_nomal); } } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int state) { // TODO Auto-generated method stub } });