需求:项目中要实现类似钉钉呢种使用用户名的后两位当做头像,背景根据一定的规则显示不同的颜色。

主要用到了pinyin4j-2.5.0.jar包,获取中文名称的首字母根据一定的规则显示背景颜色;先看看功能截图:


用到的工具类PinYinUtils

import android.text.TextUtils;import android.widget.TextView;import com.yxkj.yxapp.R;import net.sourceforge.pinyin4j.PinyinHelper;/** * Created by zfg on 2017/8/1. */public class PinYinUtils {    /**     * 得到中文首字母     *     * @param str     * @return     */    public static String getPinYinHeadChar(String str) {        String convert = "";        for (int j = 0; j < str.length(); j++) {            char word = str.charAt(j);            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);            if (pinyinArray != null) {                convert += pinyinArray[0].charAt(0);            } else {                convert += word;            }        }        convert = convert.toUpperCase();        return convert;    }    /**     * 得到中文首字母     *     * @param str     * @return     */    public static int getPinYinHead(String str) {        char[] chars;        String convert = "";        for (int j = 0; j < str.length(); j++) {            char word = str.charAt(j);            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);            if (pinyinArray != null) {                convert += pinyinArray[0].charAt(0);            } else {                convert += word;            }        }        convert = convert.toUpperCase();        chars = convert.toCharArray();        if ((chars[0] >= 'A') && (chars[0] < 'G')) {            return 1;        } else if ((chars[0] >= 'G') && (chars[0] < 'N')) {            return 2;        } else if ((chars[0] >= 'N') && (chars[0] < 'T')) {            return 3;        } else if ((chars[0] >= 'T') && (chars[0] < 'Z')) {            return 4;        } else {            return 5;        }    }    public static void setTextbg(TextView textView, String username) {        username = username.toString().trim();        if (!TextUtils.isEmpty(username)) {            int type = 1;            if (username.length() >= 2) {                textView.setText(username.substring(username.length() - 2, username.length()));                type = PinYinUtils.getPinYinHead(username.substring(username.length() - 2, username.length()));            } else {                textView.setText(username);                type = PinYinUtils.getPinYinHead(username);            }            switch (type) {                case 1:                    textView.setBackgroundResource(R.drawable.round_img1);                    break;                case 2:                    textView.setBackgroundResource(R.drawable.round_img2);                    break;                case 3:                    textView.setBackgroundResource(R.drawable.round_img3);                    break;                case 4:                    textView.setBackgroundResource(R.drawable.round_img4);                    break;                case 5:                  textView.setBackgroundResource(R.drawable.round_img5);                    break;            }        } else {            textView.setBackgroundResource(R.drawable.round_img1);        }    }}

更多相关文章

  1. Android小程序实现切换背景颜色
  2. Android颜色透明度
  3. Android中的Intent Filter匹配规则介绍
  4. Android(安卓)TextView中文字设置超链接、颜色、字体 大杂烩
  5. Android:Logcat日志猫
  6. android TextView的字体颜色设置的多种方法(转)
  7. Android(安卓)指定SD卡上一首歌作为程序的背景音乐(进阶篇之Prefe
  8. Android(安卓)之LayerDrawable层叠样式layer-list及自定义颜色Pr
  9. 配置colorAccent,colorPrimary,colorPrimaryDark,toolbar主题颜

随机推荐

  1. Android小項目之--動畫和下拉框的相互應
  2. android2.3 View视图框架源码分析之一:an
  3. Android Intent Filter-判斷intent傳遞對
  4. CropImageView android上的一个图片裁剪
  5. eclipse上android NDK开发环境的搭建(and
  6. Android如何解决显示屏尺寸适配问题
  7. 介始一下Android 单元测试框架类----Acti
  8. Android手机视频客户端项目实训 视频教程
  9. Android中的线程池简介
  10. Android 解决Google搜索首页的文本框清空