(4.2.18) ViewPagerIndicator 프레임워크 사용-CirclePageIndicator

6185 단어
선언: Circle은 새로운 기능을 적용한 전시 페이지와 상품의 여러 장의 그림을 전시하는 기능에 적용된다.
1. 레이아웃 파일 정의: SampleCirclesDefault에 레이아웃 추가:simplecircles.
레이아웃에LinearLayout의 수직 레이아웃을 정의하고viewpager와com을 추가합니다.viewpagerindicatorCirclePageIndictor는 완전히 한정된 이름이어야 합니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip" />

</LinearLayout>

 2.코드에서 레이아웃 호출
setContentView(R.layout.simple_circles);
        //    iewpager adaper
        mAdapter = new TestFragmentAdapter(getSupportFragmentManager());
        //   Pager,         pagerview
        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        //        ,         
        CirclePageIndicator indicator = (CirclePageIndicator) findViewById(R.id.indicator);
        indicator.setViewPager(mPager);

이상의 코드를 완성하면 사용할 수 있습니다.이 안에는 ViewPagerAdatper가 필요합니다.
 3.위에서 간단하게 사용한 것으로 지시된 색깔과 크기 등 속성을 수정하지 않았습니다. 현재 그가 제공한 방법을 통해 우리는 자신의 지시를 정의합니다.CirclePageIndicator에서 제공하는 속성입니다.
<declare-styleable name="CirclePageIndicator">

        <!--          -->
        <attr name="centered" />
        <!--           -->
        <attr name="fillColor" format="color" />
        <!--             -->
        <attr name="pageColor" format="color" />
        <!--        ,       -->
        <attr name="android:orientation" />
        <!--       -->
        <attr name="radius" format="dimension" />
        <!--          -->
        <attr name="snap" format="boolean" />
        <!--       -->
        <attr name="strokeColor" format="color" />
        <!--       -->
        <attr name="strokeWidth" />
        <!--          -->
        <attr name="android:background" />
    </declare-styleable>

4. 속성 변경: 3가지 방법이 있다
      4.11.레이아웃에서 변경: 그중의 xmlns: app는 뒤에 있는 http 경로의 약칭으로 사용하기 편리하다. 이 마지막에는res-auto를 사용하는데 본 적이 없다. 자동 검색일 것이다. 정상적인 쓰기 방법은 이렇다.
        xmlns:app1="http://schemas.android.com/apk/res/com.viewpagerindicator.sample"res/프로젝트의 완전한 한정 이름입니다.
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
    <com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:padding="10dip"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:background="#FFCCCCCC"
        app:radius="10dp"
        app:fillColor="#FF888888"
        app:pageColor="#88FF0000"
        app:strokeColor="#FF000000"
        app:strokeWidth="2dp"
        />
</LinearLayout>

    4.2.코드에서 수정:
CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.indicator);
        indicator.setViewPager(mPager);

        final float density = getResources().getDisplayMetrics().density;
        indicator.setBackgroundColor(0xFFCCCCCC);
        indicator.setRadius(10 * density);
        indicator.setPageColor(0x880000FF);
        indicator.setFillColor(0xFF888888);
        indicator.setStrokeColor(0xFF000000);
        indicator.setStrokeWidth(2 * density);

       4.3.테마 수정:
<activity
            android:name=".SampleCirclesStyledTheme"
            android:label="Circles/Styled (via theme)"
            android:theme="@style/CustomCirclePageIndicator" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.jakewharton.android.viewpagerindicator.sample.SAMPLE" />
            </intent-filter>
        </activity>
 CustomCirclePageIndicator    
<style name="CustomCirclePageIndicator" parent="@android:style/Theme.Light">
        <item name="fillColor">#FF888888</item>
        <item name="strokeColor">#FF000000</item>
        <item name="strokeWidth">2dp</item>
        <item name="radius">10dp</item>
        <item name="centered">true</item>
    </style>
  4.4. viewpager    :
mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                Toast.makeText(SampleCirclesWithListener.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });

좋은 웹페이지 즐겨찾기