1. 程式人生 > >使用shape圖形資源製作引導頁面的提示圓點

使用shape圖形資源製作引導頁面的提示圓點

在app引導介面通常有引導介面提示小圓點,下面簡單介紹一下利用shape圖形資源如何實現:

本文引導介面是使用的ViewPager,當ViewPager滑動時候可以動態的改變小圓點的顏色來提示使用者

1,在res資料夾下面建立子資料夾drawable,分別有兩個shape圖形資源,一個是預設時候,一個是選中時候

a,預設時候的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>
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/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
			}
		});