对汉字特别注意0和单位
如1001和100
private List<Integer> getSoundOfNumber(int number){
List<Integer> sou = new ArrayList<>();
int i = 0;
boolean isZero = true; //上一位是否为0
while (number!=0){
i++;
int lastDigit = number%10; //最后一位
if(lastDigit == 0){
if(!isZero)
sou.add(R.raw.n0);
isZero = true;
}else {
isZero = false;
if(i==2){ //单位 目前最多500
sou.add(R.raw.ten);
}else if(i ==3){
sou.add(R.raw.hundred);
}
sou.add(getResource(mContext,"n"+lastDigit)); //对应数字的语音
}
number /= 10;
}
Collections.reverse(sou); //最后倒叙
return sou;
}
private int getResource(Context mContext, String name) {
return mContext.getResources().getIdentifier(name, "raw", mContext.getPackageName());
}