TextView根据宽度截取字符串

来源:互联网 发布:名片设计软件哪个好 编辑:程序博客网 时间:2024/06/06 23:03

问题:TextView根据宽度截取字符串
解决办法:

public String getSubStringWidth(String str,int width){        if(TextUtils.isEmpty(str) || width <= 0){            return "";        }        //字符串长度        int length = str.length();        Paint paint = new Paint();        //根据宽度得到字符数量        int measurennums = paint.breakText(str, true, width, null);        //字符数量和长度比较        if(measurennums>length){            measurennums = length;        }        return str.substring(0, measurennums);    }

没找到方法之前的处理:截取字符串 区分汉字和字母数字,没用到,留存参考

public String getSubString(String str, int num) {        if(TextUtils.isEmpty(str)){            return null;        }        int length = str.length();//字符串长度        int newLength = getLength(str);//含有字符新的字符串长度        //含有字符的再处理        if(newLength > length){            if(num>length){                num = length;            }            // 截取字符串的带字符长度            num = getLength(str.substring(0,num));        }        if (num < 0) {            num = 1;        }        int end =  num;        if (end > length) {            end = length;        }        return str.substring(0,end);    }    public int getLength(String str){        int len = 0;        char[] chars = str.toCharArray();        for (int i = 0; i < chars.length; i++) {            //判断汉字字符            if((int)chars[i]>=0x4e00 && (int)chars[i]<=0x9fa5){                len++;            }else{                len+=2;            }        }        return len ;    }

仅供参考,如有问题欢迎指正

原创粉丝点击