Example usage for android.graphics Paint setSubpixelText

List of usage examples for android.graphics Paint setSubpixelText

Introduction

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

Prototype

public void setSubpixelText(boolean subpixelText) 

Source Link

Document

Helper for setFlags(), setting or clearing the SUBPIXEL_TEXT_FLAG bit

Usage

From source file:Main.java

/**
 * The most useful answer about text drawing ever. http://stackoverflow.com/a/32081250
 *//*from w ww  .j a v  a 2  s  .c o m*/
@Nullable
public static Bitmap createTypefaceBitmap(final Context context, @NonNull final String text, final int color,
        final float textSizePx) {
    final Typeface robotoMedium = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Medium.ttf");

    final Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setSubpixelText(true);
    paint.setTypeface(robotoMedium);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(color);
    paint.setTextSize(textSizePx);

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

    Bitmap bitmap = null;
    if (!bounds.isEmpty()) {
        final int width = bounds.width();
        final int height = bounds.height();

        bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);

        final float x = bounds.left;
        final float y = height - bounds.bottom;

        final Canvas canvas = new Canvas(bitmap);
        canvas.drawText(text, x, y, paint);
    }

    return bitmap;
}

From source file:Main.java

public static Bitmap buildSequence(Context context, String text) {
    Bitmap myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444);
    Canvas myCanvas = new Canvas(myBitmap);
    Paint paint = new Paint();
    //Typeface font = Typeface.createFromAsset(context.getAssets(),"fonts/7LED.ttf");
    paint.setAntiAlias(true);//w w  w .j a  v  a  2  s.  c  o  m
    paint.setSubpixelText(true);
    //paint.setTypeface(font);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.YELLOW);
    paint.setTextSize(65);
    paint.setTextAlign(Paint.Align.CENTER);
    myCanvas.drawText(text, 80, 60, paint);
    return myBitmap;
}

From source file:ch.ethz.dcg.jukefox.manager.libraryimport.AndroidAlbumCoverFetcherThread.java

private void drawTextOnBitmap(CompleteAlbum album, Bitmap bitmapHigh, int bitmapSize, float textHeight) {
    Canvas canvas = new Canvas(bitmapHigh);
    canvas.drawARGB(0, 125, 125, 125);// w  w w  .j av  a 2  s. c o m
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setTypeface(Typeface.SERIF);
    paint.setSubpixelText(true);
    paint.setTextSize(textHeight);
    paint.setAntiAlias(true);
    String artist = album.getArtists().get(0).getName();
    String shortenedText = new String(artist);

    int textLength = artist.length();
    if (textLength > 18) {
        shortenedText = artist.substring(0, 15) + "...";
        textLength = 18;
    } else if (textLength < 8) {
        while (shortenedText.length() < 8) {
            shortenedText = " " + shortenedText + " ";
        }
    }
    float pixelLength = paint.measureText(shortenedText);
    paint.setTextSize(textHeight * (bitmapSize * 2 / 3) / pixelLength);

    canvas.drawText(shortenedText, bitmapSize / 6, bitmapSize / 3, paint);

    shortenedText = album.getName();
    textLength = album.getName().length();
    if (textLength > 18) {
        shortenedText = album.getName().substring(0, 15) + "...";
        textLength = 18;
    } else if (textLength < 8) {
        while (shortenedText.length() < 8) {
            shortenedText = " " + shortenedText + " ";
        }
    }
    paint.setTextSize(bitmapSize / 10f);
    pixelLength = paint.measureText(shortenedText);
    textHeight = textHeight * bitmapSize * 2f / 3f / pixelLength;
    paint.setTextSize(textHeight);

    canvas.drawText(shortenedText, bitmapSize / 6f, bitmapSize * 2 / 3f + textHeight, paint);
}