Java Code Examples for android.graphics.Paint.getTextAlign()

The following are Jave code examples for showing how to use getTextAlign() of the android.graphics.Paint class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
+ Save this method
Example 1
Project: empty-state-recyclerview   File: TextStateDisplay.java   View Source Code Vote up 6 votes
private float getDx(final int width,
                    final int horizontalGravity,
                    final Paint paint,
                    final StaticLayout layout) {
    final boolean centered = paint.getTextAlign() == Paint.Align.CENTER;
    final float dx;
    switch (horizontalGravity) { // No support for GravityCompat.END
        case Gravity.CENTER_HORIZONTAL:
            dx = (width >> 1) - (centered ? 0 : (layout.getWidth() >> 1) - getPaddingLeft());
            break;
        default:
        case GravityCompat.START:
            dx = getPaddingLeft();
            break;
    }
    return dx;
}
 
Example 2
Project: SmartMath   File: OGLChart.java   View Source Code Vote up 6 votes
public Rect calcTextBounds(String text, Paint paint, double dTextSize, double dSpaceBtwTxtLines)	{
    float fPaintOriginalTxtSize = paint.getTextSize();
    Align alignOriginal = paint.getTextAlign();
    Rect rectTxtBox = new Rect(); // rectTxtBox gives original text box and returns the actual text box
    if (text == null)	{
    	return rectTxtBox;	// null protection.
    }
    paint.setTextSize((float)dTextSize);
    paint.setTextAlign(Align.LEFT);
    String[] lines = text.split("\n");
    for (int i = 0; i < lines.length; ++i) {
    	int nTxtWidth = (int)Math.ceil(paint.measureText(lines[i]));
        if (i == 0)    {
            rectTxtBox.left = 0;
            rectTxtBox.right = nTxtWidth;	//rect.right;
            rectTxtBox.top = 0;
            rectTxtBox.bottom = (int)Math.ceil(-paint.ascent() + paint.descent());//rect.height();
        } else    {
            rectTxtBox.right = Math.max(rectTxtBox.right, nTxtWidth);
            rectTxtBox.bottom = (int) (rectTxtBox.bottom + (int)Math.ceil(-paint.ascent() + paint.descent()) + dSpaceBtwTxtLines);
        }
    }
    paint.setTextAlign(alignOriginal);
    paint.setTextSize(fPaintOriginalTxtSize);
    return rectTxtBox;
}
 
Example 3
Project: GitHub   File: Utils.java   View Source Code Vote up 4 votes
public static void drawXAxisValue(Canvas c, String text, float x, float y,
                                  Paint paint,
                                  MPPointF anchor, float angleDegrees) {

    float drawOffsetX = 0.f;
    float drawOffsetY = 0.f;

    final float lineHeight = paint.getFontMetrics(mFontMetricsBuffer);
    paint.getTextBounds(text, 0, text.length(), mDrawTextRectBuffer);

    // Android sometimes has pre-padding
    drawOffsetX -= mDrawTextRectBuffer.left;

    // Android does not snap the bounds to line boundaries,
    //  and draws from bottom to top.
    // And we want to normalize it.
    drawOffsetY += -mFontMetricsBuffer.ascent;

    // To have a consistent point of reference, we always draw left-aligned
    Paint.Align originalTextAlign = paint.getTextAlign();
    paint.setTextAlign(Paint.Align.LEFT);

    if (angleDegrees != 0.f) {

        // Move the text drawing rect in a way that it always rotates around its center
        drawOffsetX -= mDrawTextRectBuffer.width() * 0.5f;
        drawOffsetY -= lineHeight * 0.5f;

        float translateX = x;
        float translateY = y;

        // Move the "outer" rect relative to the anchor, assuming its centered
        if (anchor.x != 0.5f || anchor.y != 0.5f) {
            final FSize rotatedSize = getSizeOfRotatedRectangleByDegrees(
                    mDrawTextRectBuffer.width(),
                    lineHeight,
                    angleDegrees);

            translateX -= rotatedSize.width * (anchor.x - 0.5f);
            translateY -= rotatedSize.height * (anchor.y - 0.5f);
            FSize.recycleInstance(rotatedSize);
        }

        c.save();
        c.translate(translateX, translateY);
        c.rotate(angleDegrees);

        c.drawText(text, drawOffsetX, drawOffsetY, paint);

        c.restore();
    } else {
        if (anchor.x != 0.f || anchor.y != 0.f) {

            drawOffsetX -= mDrawTextRectBuffer.width() * anchor.x;
            drawOffsetY -= lineHeight * anchor.y;
        }

        drawOffsetX += x;
        drawOffsetY += y;

        c.drawText(text, drawOffsetX, drawOffsetY, paint);
    }

    paint.setTextAlign(originalTextAlign);
}