package com.example.new01;
import android.app.*;
import android.content.*;
import android.os.*;
import android.support.v4.view.*;
import android.support.v4.view.ViewPager.*;
import android.util.*;
import android.view.*;
import android.widget.*;
public class MainActivity extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BaseViewPager pager = new BaseViewPager(this);
pager.setPageControl(new PageControl(this));
pager.setAdapter(new SampleAdapter(this));
setContentView(pager);
startActivity(new Intent(this, LoadingActivity.class));
}
public void mOnClick(View v){
Intent intent = new Intent(this, ListActivity.class);
startActivity(intent);
}
}
class BaseViewPager extends RelativeLayout {
ViewPager mViewPager;
IPageControl iPageControl;
public BaseViewPager(Context context) {
super(context);
initialization();
}
public BaseViewPager(Context context, AttributeSet attrs) {
super(context , attrs);
initialization();
}
public BaseViewPager(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialization();
}
private final void initialization() {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(-1, -1);
params.addRule(RelativeLayout.ABOVE, 1);
mViewPager = new ViewPager(getContext());
mViewPager.setLayoutParams(params);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int arg0) {}
public void onPageScrolled(int arg0, float arg1, int arg2) {}
public void onPageSelected(int arg0) {
if (iPageControl != null) {
iPageControl.setPageIndex(arg0);
}
}
});
addView(mViewPager);
}
public void setCurrentItem(int item) {
mViewPager.setCurrentItem(item);
}
public ViewPager getViewPager() {
return mViewPager;
}
public void setAdapter(PagerAdapter adapter) {
iPageControl.setPageSize(adapter.getCount());
mViewPager.setAdapter(adapter);
if(adapter.getCount() > 0)
mViewPager.setCurrentItem(0);
}
public void setPageControl(IPageControl c) {
setPageControl(c , RelativeLayout.ALIGN_PARENT_BOTTOM);
}
public void setPageControl(IPageControl c , int rule) {
iPageControl = c;
View v = (View)c;
v.setId(1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(-2, -2);
params.topMargin = 30;
params.bottomMargin = 30;
params.addRule(rule);
params.addRule(RelativeLayout.CENTER_HORIZONTAL);
v.setLayoutParams(params);
super.addView(v);
}
}
package com.example.new01;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class PageControl extends View implements IPageControl {
private int mPageSize;
private int mCurrentPage;
private Paint mPaint;
public PageControl(Context context) {
super(context);
initialization();
}
public PageControl(Context context, AttributeSet attrs) {
super(context, attrs);
initialization();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(10 * (mPageSize + (mPageSize - 1)), 10);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
private Paint mPaint2;
private final void initialization() {
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setColor(Color.LTGRAY);
mPaint2 = new Paint();
mPaint2.setAntiAlias(true);
mPaint2.setColor(Color.DKGRAY);
}
public int getCurrentPageIndex() {
return mCurrentPage;
}
public void setPageSize (int size) {
mPageSize = size;
invalidate();
}
public int getPageSize() {
return mPageSize;
}
public void setPageIndex(int index) {
mCurrentPage = index;
invalidate();
}
private static float RADIUS = 5;
private static int PADDING = 10;
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
float x = RADIUS;
float y = RADIUS;
for (int i = 0; i < mPageSize; i++) {
if (mCurrentPage == i) {
canvas.drawCircle(x, y,
RADIUS,
mPaint2);
} else {
canvas.drawCircle(x, y,
RADIUS,
mPaint);
}
x += (RADIUS * 2) + PADDING;
}
}
}
어느 사이트에서 퍼온 페이지 컨트롤 코딩인데요 이 코딩자체로는
하단에 페이지컨트롤이나오는데요
상단에 오게 하거나 사이즈 조절같은걸 해봤는데 생각처럼 잘안되더라구요..
어디를 어떤식으로바꿔줘야 RADIUS의 크기나 위치를 조정할수있는지요??