/* | |
* Copyright 2012 AndroidPlot.com | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package com.androidplot.xy; | |
import android.graphics.Canvas; | |
import android.graphics.Color; | |
import android.graphics.Paint; | |
import android.graphics.PointF; | |
import com.androidplot.util.PixelUtils; | |
public class PointLabelFormatter { | |
private static final float DEFAULT_H_OFFSET_DP = 0; | |
private static final float DEFAULT_V_OFFSET_DP = -4; | |
private static final float DEFAULT_TEXT_SIZE_SP = 12; | |
private Paint textPaint; | |
public float hOffset; | |
public float vOffset; | |
public PointLabelFormatter() { | |
this(Color.WHITE); | |
} | |
public PointLabelFormatter(int textColor) { | |
this(textColor, PixelUtils.dpToPix(DEFAULT_H_OFFSET_DP), | |
PixelUtils.dpToPix(DEFAULT_V_OFFSET_DP)); | |
} | |
/** | |
* | |
* @param textColor | |
* @param hOffset Horizontal offset of text in pixels. | |
* @param vOffset Vertical offset of text in pixels. Offset is in screen coordinates; | |
* positive values shift the text further down the screen. | |
*/ | |
public PointLabelFormatter(int textColor, float hOffset, float vOffset) { | |
initTextPaint(textColor); | |
this.hOffset = hOffset; | |
this.vOffset = vOffset; | |
} | |
public Paint getTextPaint() { | |
return textPaint; | |
} | |
public void setTextPaint(Paint textPaint) { | |
this.textPaint = textPaint; | |
} | |
protected void initTextPaint(Integer textColor) { | |
if (textColor == null) { | |
setTextPaint(null); | |
} else { | |
setTextPaint(new Paint()); | |
getTextPaint().setAntiAlias(true); | |
getTextPaint().setColor(textColor); | |
getTextPaint().setTextAlign(Paint.Align.CENTER); | |
getTextPaint().setTextSize(PixelUtils.spToPix(DEFAULT_TEXT_SIZE_SP)); | |
//textPaint.setStyle(Paint.Style.STROKE); | |
} | |
} | |
} |