(4.2.18) ViewPagerIndicator 프레임워크 사용-CirclePageIndicator
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) {
}
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.