package com.example.administrator.cookman.ui.component.magicindicator.buildins.commonnavigator.titles;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Rect;
import android.text.TextUtils;
import android.view.Gravity;
import android.widget.TextView;
import com.example.administrator.cookman.ui.component.magicindicator.buildins.UIUtil;
import com.example.administrator.cookman.ui.component.magicindicator.buildins.commonnavigator.abs.IMeasurablePagerTitleView;
/**
* 带文本的指示器标题
* 博客: http://hackware.lucode.net
* Created by hackware on 2016/6/26.
*/
public class SimplePagerTitleView extends TextView implements IMeasurablePagerTitleView {
private int mSelectedColor;
private int mNormalColor;
public SimplePagerTitleView(Context context) {
super(context, null);
init(context);
}
private void init(Context context) {
setGravity(Gravity.CENTER);
int padding = UIUtil.dip2px(context, 10);
setPadding(padding, 0, padding, 0);
setSingleLine();
setEllipsize(TextUtils.TruncateAt.END);
}
@Override
public void onSelected(int index, int totalCount) {
setTextColor(mSelectedColor);
}
@Override
public void onDeselected(int index, int totalCount) {
setTextColor(mNormalColor);
}
@Override
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
}
@Override
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
}
@Override
public int getContentLeft() {
Rect bound = new Rect();
getPaint().getTextBounds(getText().toString(), 0, getText().length(), bound);
int contentWidth = bound.width();
return getLeft() + getWidth() / 2 - contentWidth / 2;
}
@Override
public int getContentTop() {
Paint.FontMetrics metrics = getPaint().getFontMetrics();
float contentHeight = metrics.bottom - metrics.top;
return (int) (getHeight() / 2 - contentHeight / 2);
}
@Override
public int getContentRight() {
Rect bound = new Rect();
getPaint().getTextBounds(getText().toString(), 0, getText().length(), bound);
int contentWidth = bound.width();
return getLeft() + getWidth() / 2 + contentWidth / 2;
}
@Override
public int getContentBottom() {
Paint.FontMetrics metrics = getPaint().getFontMetrics();
float contentHeight = metrics.bottom - metrics.top;
return (int) (getHeight() / 2 + contentHeight / 2);
}
public int getSelectedColor() {
return mSelectedColor;
}
public void setSelectedColor(int selectedColor) {
mSelectedColor = selectedColor;
}
public int getNormalColor() {
return mNormalColor;
}
public void setNormalColor(int normalColor) {
mNormalColor = normalColor;
}
}