android生成文字头像bitmap

public static Bitmap headBitmap(String name,int size,String colorHex){

        name = name!=null ? ( name.length()>2 ? name.substring(name.length()-2) : name ): "" ;

        Bitmap bitmap = Bitmap.createBitmap(size,size,Bitmap.Config.ARGB_4444);
        Canvas canvas = new Canvas(bitmap) ;

        Rect rect = new Rect(0,0,size,size);//画一个矩形
        Paint rectPaint = new Paint();
        rectPaint.setColor(Color.parseColor(colorHex));
        rectPaint.setStyle(Paint.Style.FILL);
        rectPaint.setAntiAlias(true);
        canvas.drawCircle(size/2 ,size/2 , size/ 2,rectPaint);

        Paint textPaint = new Paint();
        textPaint.setColor(Color.WHITE);
        textPaint.setTextSize(size /3);
        textPaint.setStyle(Paint.Style.FILL);
        textPaint.setAntiAlias(true);
        textPaint.setTextAlign(Paint.Align.CENTER);

        Paint.FontMetrics fontMetrics = textPaint.getFontMetrics();
        float top = fontMetrics.top;//为基线到字体上边框的距离,即上图中的top
        float bottom = fontMetrics.bottom;//为基线到字体下边框的距离,即上图中的bottom

        int baseLineY = (int) (rect.centerY() - top/2 - bottom/2);//基线中间点的y轴计算公式

        canvas.drawText(name,rect.centerX(),baseLineY,textPaint);

        return bitmap ;
    }

暂无评论

相关推荐

记录包

http://package.cn-bj.ufileos.com/android%2Fprod-zmyl%2Ftitan-large-screen-android_x-7.1.8-203_0000_prod-zmyl_10 …

记录包

http://package.cn-bj.ufileos.com/android%2Fprod-zmyl%2Ftitan-large-screen-android_x-7.1.8-203_0000_prod-zmyl_10 …

微信扫一扫,分享到朋友圈

android生成文字头像bitmap