美文网首页
android text转drawable做前景色

android text转drawable做前景色

作者: 吉凶以情迁 | 来源:发表于2023-04-11 16:43 被阅读0次
  public static BitmapDrawable bitmapText2Drawable(Context context,String text,int fontSize,int textColor,int backcolor) {
        // 创建一个 Paint 对象
        Paint paint = new Paint();
        paint.setColor(textColor);
        paint.setAntiAlias(true);
        paint.setTextSize(DensityUtil.sp2px(context,fontSize));  // 设置字体大小为 14sp

// 计算文本的宽度和高度
        float textWidth = paint.measureText(text);
        Paint.FontMetrics fontMetrics = paint.getFontMetrics();
        float textHeight = fontMetrics.bottom - fontMetrics.top;


        int canvasWidth = (int) Math.ceil(textWidth);
        int canvasHeight = (int) Math.ceil(textHeight);


        Bitmap bitmap = Bitmap.createBitmap(canvasWidth, canvasHeight, Bitmap.Config.ARGB_8888);

        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(backcolor);

        float x = 0;
        float y = -fontMetrics.top;
        canvas.drawText(text, x, y, paint);

        BitmapDrawable bitmapDrawable = new BitmapDrawable(context.getResources(), bitmap);
        return bitmapDrawable;
    }
  public static BitmapDrawable bitmapText2Drawable(Context context, String text, int fontSize, int textColor, int backcolor, int paddingTop, int paddingBottom, int paddingLeft, int paddingRight) {
        Paint paint = new Paint();
        paint.setTextSize(fontSize);
        paint.setColor(textColor);
        paint.setAntiAlias(true);
        paint.setTextAlign(Paint.Align.LEFT);
        int width = (int) paint.measureText(text);
        int height = (int) (paint.descent() - paint.ascent());
        Bitmap bitmap = Bitmap.createBitmap(width + paddingLeft + paddingRight, height + paddingTop + paddingBottom, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(backcolor);
        canvas.drawText(text, paddingLeft, height - paint.descent() + paddingTop, paint);
        return new BitmapDrawable(context.getResources(), bitmap);
    }


相关文章

网友评论

      本文标题:android text转drawable做前景色

      本文链接:https://www.haomeiwen.com/subject/pybgddtx.html