根据名字画图做背景头像
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;
}直接使用即可,比普通的默认头像稍微好看一点。。。
最近开发通讯录功能,有用户头像,但是默认头像不太美观,就想着自己画一个当做默认图像,写了个方法,直接上代码: 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;
}直接使用即可,比普通的默认头像稍微好看一点。。。
相关文章推荐
- Extjs 图片按钮背景根据鼠标的over和out变化
- Windows 画图程序绘制像素小女孩头像
- 在Excel中根据背景颜色来计算数据
- 如何从Outlook里获得用户的名字和头像
- linux 下根据进程名字获取进程的进程号PID
- 根据时间变换页面背景
- 根据apk 查询package名字和activity名称
- Android实现第三方登录并获取到头像、名字
- 背景图片根据宽度自适应高度的方案
- Android根据Button状态(normal,focused,pressed)显示不同背景图片
- android设置头像同时设置模糊背景
- docker根据名字抓取容器
- 根据int随机生成名字
- android根据View的不同状态更换不同的背景
- js栏目根据地址栏修改背景添加class
- 根据资源的名字获取它的ID
- 一个简单类似朋友圈头像背景的代码
- 根据计算机的名字获取对方机器的IP地址
- 根据绑定的值的不同改变gridview里某一单元格的字体或背景颜色
- RDLC 根据条件改变背景颜色-多个IIF