Example usage for android.graphics Paint descent

List of usage examples for android.graphics Paint descent

Introduction

In this page you can find the example usage for android.graphics Paint descent.

Prototype

public float descent() 

Source Link

Document

Return the distance below (positive) the baseline (descent) based on the current typeface and text size.

Usage

From source file:com.pc.pager.indicator.TitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 * @param index//from  w w w .  j a v a  2  s  .c  om
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    // Calculate the text bounds
    Rect bounds = new Rect();
    CharSequence title = getTitle(index);
    bounds.right = (int) paint.measureText(title, 0, title.length()) + TextMaginLeftAndRight;
    bounds.bottom = (int) (paint.descent() - paint.ascent());
    return bounds;
}

From source file:com.along.altmcssd.pda.widget.viewpagerindicator.TitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 * /*from  w  w w .jav  a  2 s  .  c o  m*/
 * @param index
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    // Calculate the text bounds
    Rect bounds = new Rect();
    CharSequence title = getTitle(index);
    bounds.right = (int) paint.measureText(title, 0, title.length());
    bounds.bottom = (int) (paint.descent() - paint.ascent());
    return bounds;
}

From source file:android.hqs.view.pager.indicator.TitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 *
 * @param index//from   w  ww .j av a  2s.c o  m
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    //Calculate the text bounds
    Rect bounds = new Rect();
    CharSequence title = getTitle(index);
    bounds.right = (int) paint.measureText(title, 0, title.length());
    bounds.bottom = (int) (paint.descent() - paint.ascent());
    return bounds;
}

From source file:cn.eoe.app.indicator.TitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 *
 * @param index/* w w w . j  a v a  2 s  .  c  o  m*/
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    //Calculate the text bounds
    Rect bounds = new Rect();
    CharSequence title = getTitle(index);
    bounds.right = (int) paint.measureText(title, 0, title.length()) + TextMaginLeftAndRight;
    bounds.bottom = (int) (paint.descent() - paint.ascent());
    return bounds;
}

From source file:com.focustech.common.widget.TitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 * //w w w. j  a v  a2  s . co  m
 * @param index
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    // Calculate the text bounds
    Rect bounds = new Rect();
    CharSequence title = getTitle(index);
    if (index == 0 && mIsShowPoint) {
        bounds.right = (int) paint.measureText(title, 0, title.length()) + 15;
        bounds.bottom = (int) (paint.descent() - paint.ascent());
    } else {
        bounds.right = (int) paint.measureText(title, 0, title.length());
        bounds.bottom = (int) (paint.descent() - paint.ascent());
    }
    return bounds;
}

From source file:io.doist.datetimepicker.time.RadialTimePickerView.java

/**
 * Using the trigonometric Unit Circle, calculate the positions that the text will need to be
 * drawn at based on the specified circle radius. Place the values in the textGridHeights and
 * textGridWidths parameters./* www.  j  av  a2  s  .c o  m*/
 */
private static void calculateGridSizes(Paint paint, float numbersRadius, float xCenter, float yCenter,
        float textSize, float[] textGridHeights, float[] textGridWidths) {
    /*
     * The numbers need to be drawn in a 7x7 grid, representing the points on the Unit Circle.
     */
    final float offset1 = numbersRadius;
    // cos(30) = a / r => r * cos(30)
    final float offset2 = numbersRadius * COSINE_30_DEGREES;
    // sin(30) = o / r => r * sin(30)
    final float offset3 = numbersRadius * SINE_30_DEGREES;

    paint.setTextSize(textSize);
    // We'll need yTextBase to be slightly lower to account for the text's baseline.
    yCenter -= (paint.descent() + paint.ascent()) / 2;

    textGridHeights[0] = yCenter - offset1;
    textGridWidths[0] = xCenter - offset1;
    textGridHeights[1] = yCenter - offset2;
    textGridWidths[1] = xCenter - offset2;
    textGridHeights[2] = yCenter - offset3;
    textGridWidths[2] = xCenter - offset3;
    textGridHeights[3] = yCenter;
    textGridWidths[3] = xCenter;
    textGridHeights[4] = yCenter + offset3;
    textGridWidths[4] = xCenter + offset3;
    textGridHeights[5] = yCenter + offset2;
    textGridWidths[5] = xCenter + offset2;
    textGridHeights[6] = yCenter + offset1;
    textGridWidths[6] = xCenter + offset1;
}

From source file:com.viewpagerindicator.RichTitlePageIndicator.java

/**
 * Calculate the bounds for a view's title
 *
 * @param index//from www  . ja  v a2  s .  c  om
 * @param paint
 * @return
 */
private Rect calcBounds(int index, Paint paint) {
    //Calculate the text bounds
    Rect bounds = new Rect();
    String title = getTitle(index);
    Bitmap icon = getIcon(index);

    int textWidth = (int) paint.measureText(title);
    int iconWidth = icon == null ? 0 : icon.getWidth();
    bounds.right = textWidth + iconWidth;

    int textHeight = (int) (paint.descent() - paint.ascent());
    bounds.bottom = textHeight;
    //int iconHeight = icon == null ? 0 : icon.getHeight();
    //bounds.bottom = Math.max(textHeight, iconHeight);
    return bounds;
}

From source file:org.mariotaku.twidere.text.OriginalStatusSpan.java

@Override
public void draw(final Canvas canvas, final CharSequence text, final int start, final int end, final float x,
        final int top, final int y, final int bottom, final Paint paint) {
    if (!(paint instanceof TextPaint))
        return;/*from w w  w.  j a v a2 s .  c  o m*/
    final TextPaint tp = (TextPaint) paint;
    mBounds.left = x;
    mBounds.right = x + paint.measureText(text, start, end) + mPadding * 2;
    mBounds.top = top;
    mBounds.bottom = bottom;
    final int innerTextColor = TwidereColorUtils.getContrastYIQ(tp.linkColor, ThemeUtils.ACCENT_COLOR_THRESHOLD,
            mDarkLightColors[0], mDarkLightColors[1]);
    mPaint.setStyle(Paint.Style.FILL);
    mPaint.setColor(tp.linkColor);
    mBounds.inset(mPaint.getStrokeWidth() / 2, mPaint.getStrokeWidth() / 2);
    canvas.drawRoundRect(mBounds, mCornerRadius, mCornerRadius, mPaint);
    mBounds.inset(-mPaint.getStrokeWidth() / 2, -mPaint.getStrokeWidth() / 2);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setColor(
            ColorUtils.compositeColors(ColorUtils.setAlphaComponent(innerTextColor, 0x80), tp.linkColor));
    mBounds.inset(mPaint.getStrokeWidth() / 2, mPaint.getStrokeWidth() / 2);
    canvas.drawRoundRect(mBounds, mCornerRadius, mCornerRadius, mPaint);
    paint.setColor(innerTextColor);
    canvas.drawText(text, start, end, x + mPadding,
            top + (bottom - top) / 2 - (paint.descent() + paint.ascent()) / 2, paint);
}

From source file:com.gruporaido.tasker_library.util.Helper.java

/**
 * @param drawableId/*from  w ww .j a  va2s. c om*/
 * @param text
 * @param textSize
 * @param offsetX
 * @param offsetY
 * @return
 */
public Bitmap drawTextOnDrawable(int drawableId, String text, int textSize, int offsetX, int offsetY) {

    Bitmap bm = BitmapFactory.decodeResource(mContext.getResources(), drawableId).copy(Bitmap.Config.ARGB_8888,
            true);

    Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.WHITE);
    paint.setTypeface(tf);
    paint.setTextAlign(Paint.Align.CENTER);
    paint.setTextSize(dpToPx(textSize));

    Rect textRect = new Rect();
    paint.getTextBounds(text, 0, text.length(), textRect);

    Canvas canvas = new Canvas(bm);

    //If the text is bigger than the canvas , reduce the font size
    if (textRect.width() >= (canvas.getWidth() - 4)) //the padding on either sides is considered as 4, so as to appropriately fit in the text
        paint.setTextSize(dpToPx(textSize / 2)); //Scaling needs to be used for different dpi's

    //Calculate the positions
    int xPos = (canvas.getWidth() / 2) - 2 + dpToPx(offsetX); //-2 is for regulating the x position offset

    //"- ((paint.descent() + paint.ascent()) / 2)" is the distance from the baseline to the center.
    int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint.ascent()) / 2)) + dpToPx(offsetY);

    canvas.drawText(text, xPos, yPos, paint);

    return bm;
}