您的位置:首页 > 其它

根据名字画图做背景头像

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

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

}直接使用即可,比普通的默认头像稍微好看一点。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: