/*
* 官网地站:http://www.mob.com
* 技术支持QQ: 4006852216
* 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复)
*
* Copyright (c) 2013年 mob.com. All rights reserved.
*/
package cn.sharesdk.onekeyshare.themes.classic;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
/** 九宫格滑动时,下面显示的圆圈 */
public class IndicatorView extends View {
private static final int DESIGN_INDICATOR_RADIUS = 6;
private static final int DESIGN_INDICATOR_DISTANCE = 14;
private static final int DESIGN_BOTTOM_HEIGHT = 52;
/** 九格宫有多少页数 */
private int count;
/** 当前显示的是九格宫中的第几页 */
private int current;
public IndicatorView(Context context) {
super(context);
}
public void setScreenCount(int count) {
this.count = count;
}
public void onScreenChange(int currentScreen, int lastScreen) {
if (currentScreen != current) {
current = currentScreen;
postInvalidate();
}
}
protected void onDraw(Canvas canvas) {
if (count <= 1) {
this.setVisibility(View.GONE);
return;
}
float height = getHeight();
float radius = height * DESIGN_INDICATOR_RADIUS / DESIGN_BOTTOM_HEIGHT;
float distance = height * DESIGN_INDICATOR_DISTANCE / DESIGN_BOTTOM_HEIGHT;
float windowWidth = radius * 2 * count + distance * (count - 1);
float left = (getWidth() - windowWidth) / 2;
float cy = height / 2;
canvas.drawColor(0xffffffff);
Paint paint = new Paint();
paint.setAntiAlias(true);
for (int i = 0; i < count; i++) {
if (i == current) {
paint.setColor(0xff5d71a0);
} else {
paint.setColor(0xffafb1b7);
}
float cx = left + (radius * 2 + distance) * i;
canvas.drawCircle(cx, cy, radius, paint);
}
}
}