根据名字画图做背景头像

以前没有写博客的习惯,感觉有点费事,最近项目正开发,顺手把用到的知识点给大家分享一下,同时也为了以后查找方便

最近开发通讯录功能,有用户头像,但是默认头像不太美观,就想着自己画一个当做默认图像,写了个方法,直接上代码:

    public static Bitmap defaultAvatar(String name, int Length) {
        int width = Length;
        int height = Length;
        Bitmap bmp = Bitmap.createBitmap(width, height, Config.ARGB_8888);
        Canvas canvasTemp = new Canvas(bmp);
        int colorIndex = getDefaultAvatarBgColorNoUserID(name);
        canvasTemp.drawColor(Color.parseColor(colors[colorIndex]));
        Paint p = new Paint();
        p.setColor(Color.WHITE);
        p.setAntiAlias(true);//去除锯齿
        p.setFilterBitmap(true);//对位图进行滤波处理
        p.setTextSize((int) (Length * 0.6));
        String mString = "";
        if (!TextUtils.isEmpty(name)) {
            String filterName = StringUitls.getStringFilter(name).toUpperCase();
            char[] names;
            if (filterName.length() > 0) {
                String throwNumberName = filterName.replaceAll("\\d+", "");
                if (throwNumberName.length() > 0) {
                    if (StringUitls.containsChineseChar(throwNumberName)) {
                        throwNumberName = throwNumberName.replaceAll("[a-zA-Z]", "");
                        names = throwNumberName.toCharArray();
                    } else {
                        names = throwNumberName.toCharArray();
                    }

                } else {
                    names = name.toCharArray();
                }
            } else {
                names = name.toCharArray();
            }
            mString = String.valueOf(names[names.length - 1]);
        } else {
            mString = "佚";
        }
        float tX = (width - getFontlength(p, mString)) / 2;
        float tY = (height - getFontHeight(p)) / 2 + getFontLeading(p);
        canvasTemp.drawText(mString, tX, tY, p);
        return bmp;

    }
直接使用即可,比普通的默认头像稍微好看一点。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值