美文网首页
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