您的位置:首页 > 移动开发 > Android开发

Weli的Android学习日记 0.4关于String.xml转义与一些零散的代码

2016-11-12 11:34 633 查看
原文:原文已被删除

以下为常见的ASCII十进制交换编码:

 --> <-- 这边是空格
!-->!<--
"-->"<-- xml中需要在前面加入\
#-->#<--
$-->$<--
%-->%<--
&-->&<--
'-->'<--
(-->(<--
)-->)<--
*-->*<--
+-->+<--
,-->,<--
--->-<--
.-->.<--
/-->/<--
:-->:<--
;-->;<--
<--><<--
=-->=<--
>-->><--
?-->?<--
@-->@<--
[-->[<--
\-->--
]-->]<--
^-->^<--
_-->_<--
`-->`<--
{-->{<--
|-->|<--
}-->}<--
~-->~<--
 --> <--这边是空格,在xml首字符中不会被忽略
¡-->¡<--
¢-->¢<--
£-->£<--
¤-->¤<--
¥-->¥<--
¦-->¦<--
§-->§<--
¨-->¨<--
©-->©<--
ª-->ª<--
«-->«<--
¬-->¬<--
­-->­<--
®-->®<--
¯-->¯<--
°-->°<--
±-->±<--
²-->²<--
³-->³<--
´-->´<--
µ-->µ<--
¶-->¶<--
·-->•<--
¸-->¸<--
¹-->¹<--
º-->º<--
»-->»<--
¼-->¼<--
½-->½<--
¾-->¾<--
¿-->¿<--
À-->À<--
Á-->Á<--
Â-->Â<--
Ã-->Ã<--
Ä-->Ä<--
Å-->Å<--
Æ-->Æ<--
Ç-->Ç<--
È-->È<--
É-->É<--
Ê-->Ê<--
Ë-->Ë<--
Ì-->Ì<--
Í-->Í<--
Î-->Î<--
Ï-->Ï<--
Ð-->Ð<--
Ñ-->Ñ<--
Ò-->Ò<--
Ó-->Ó<--
Ô-->Ô<--
Õ-->Õ<--
Ö-->Ö<--
×-->×<--
Ø-->Ø<--
Ù-->Ù<--
Ú-->Ú<--
Û-->Û<--
Ü-->Ü<--
Ý-->Ý<--
Þ-->Þ<--
ß-->ß<--
à-->à<--
á-->á<--
â-->â<--
ã-->ã<--
ä-->ä<--
å-->å<--
æ-->æ<--
ç-->ç<--
è-->è<--
é-->é<--
ê-->ê<--
ë-->ë<--
ì-->ì<--
í-->í<--
î-->î<--
ï-->ï<--
ð-->ð<--
ñ-->ñ<--
ò-->ò<--
ó-->ó<--
ô-->ô<--
õ-->õ<--
ö-->ö<--
÷-->÷<--
ø-->ø<--
ù-->ù<--
ú-->ú<--
û-->û<--
ü-->ü<--
ý-->ý<--
þ-->þ<--
ÿ-->ÿ<--
Ā-->Ā<--
ā-->ā<--
Ă-->Ă<--
ă-->ă<--
Ą-->Ą<--
ą-->ą<--
Ć-->Ć<--
ć-->ć<--
Ĉ-->Ĉ<--
ĉ-->ĉ<--
Ċ-->Ċ<--
ċ-->ċ<--
Č-->Č<--
č-->č<--
Ď-->Ď<--
ď-->ď<--
Đ-->Đ<--
đ-->đ<--
Ē-->Ē<--
ē-->ē<--
Ĕ-->Ĕ<--
ĕ-->ĕ<--
Ė-->Ė<--
ė-->ė<--
Ę-->Ę<--
ę-->ę<--
Ě-->Ě<--
ě-->ě<--
Ĝ-->Ĝ<--
ĝ-->ĝ<--
Ğ-->Ğ<--
ğ-->ğ<--
Ġ-->Ġ<--
ġ-->ġ<--
Ģ-->Ģ<--
ģ-->ģ<--
Ĥ-->Ĥ<--
ĥ-->ĥ<--
Ħ-->Ħ<--
ħ-->ħ<--
Ĩ-->Ĩ<--
ĩ-->ĩ<--
Ī-->Ī<--
ī-->ī<--
Ĭ-->Ĭ<--
ĭ-->ĭ<--
Į-->Į<--
į-->į<--
İ-->İ<--
ı-->ı<--
IJ-->IJ<--
ij-->ij<--
Ĵ-->Ĵ<--
ĵ-->ĵ<--
Ķ-->Ķ<--
ķ-->ķ<--
ĸ-->ĸ<--
Ĺ-->Ĺ<--
ĺ-->ĺ<--
Ļ-->Ļ<--
ļ-->ļ<--
Ľ-->Ľ<--
ľ-->ľ<--
Ŀ-->Ŀ<--
ŀ-->ŀ<--
Ł-->Ł<--
ł-->ł<--
Ń-->Ń<--
ń-->ń<--
Ņ-->Ņ<--
ņ-->ņ<--
Ň-->Ň<--
ň-->ň<--
ʼn-->ʼn<--
Ŋ-->Ŋ<--
ŋ-->ŋ<--
Ō-->Ō<--
ō-->ō<--
Ŏ-->Ŏ<--
ŏ-->ŏ<--
Ő-->Ő<--
ő-->ő<--
Œ-->Œ<--
œ-->œ<--
Ŕ-->Ŕ<--
ŕ-->ŕ<--
Ŗ-->Ŗ<--
ŗ-->ŗ<--
Ř-->Ř<--
ř-->ř<--
Ś-->Ś<--
ś-->ś<--
Ŝ-->Ŝ<--
ŝ-->ŝ<--
Ş-->Ş<--
ş-->ş<--
Š-->Š<--
š-->š<--
Ţ-->Ţ<--
ţ-->ţ<--
Ť-->Ť<--
ť-->ť<--
Ŧ-->Ŧ<--
ŧ-->ŧ<--
Ũ-->Ũ<--
ũ-->ũ<--
Ū-->Ū<--
ū-->ū<--
Ŭ-->Ŭ<--
ŭ-->ŭ<--
Ů-->Ů<--
ů-->ů<--
Ű-->Ű<--
ű-->ű<--
Ų-->Ų<--
ų-->ų<--
Ŵ-->Ŵ<--
ŵ-->ŵ<--
Ŷ-->Ŷ<--
ŷ-->ŷ<--
Ÿ-->Ÿ<--
Ź-->Ź<--
ź-->ź<--
Ż-->Ż<--
ż-->ż<--
Ž-->Ž<--
ž-->ž<--


下面这个感觉很实用,我们经常在一在登录时,会遇到一些固定文字与动态文字的结合例如:【欢迎登录xxx,你本次消费(0.01元),剩余余额(100元),本次获得积分(1分)】.要使用多个TextView相加感觉太麻烦了,在网上找到了解决方法
下面先上个图




下面来介绍如何实现。在String.xml定义

<string name="outgui">请于%1$s%2$s%3$s%4$s%5$s%6$s前去提柜</string>


在java代码里实现转换.

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
TextView tv_time=(TextView) findViewById(R.id.tv_time);

String time = "2016";

String text = String.format(getResources().getString(R.string.outgui),
time, "年", "12", "月", "12", "日");
int index[] = new int[6];
index[0] = text.indexOf(time);
index[1] = text.indexOf("年");
index[2] = text.indexOf("12");
index[3] = text.indexOf("月");
index[4] = text.indexOf("12");
index[5] = text.indexOf("日");
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[0], index[0] + 4, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[1], index[1] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[2], index[2] + 3, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[3], index[3] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[4], index[2] + 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")),
index[5], index[3] + 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
// style.setSpan(new RelativeSizeSpan(2.0f), index[4], index[2] + 5,
// Spannable.SPAN_EXCLUSIVE_INCLUSIVE);;
tv_time.setText(style);
}


第二个是单个动态文本,例如:小姐今年23岁了,我们可以在java代码中动态改变年龄


<string name="old">小姐今年%1$d岁了</string>


其java代码:
String sAgeFormat = getResources().getString(R.string.old);

String sFinalAge = String.format(sAgeFormat, 23);

tv_time2.setText(sFinalAge);


**第三个是一个多个动态数字文本 例如,今天是星期二,早上10点要开会。要用到 <xliff:g>标签, 首先要导入这个标签,在`<?xml version="1.0" encoding="utf-8"?>
下面写上


<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> `


<string name="test_xliff">小姐今年<xliff:g id="xxx">%1d</xliff:g>岁了,上<xliff:g id="yyy">%2s</xliff:g>年级!</string>
或者
<string name="test_xliff">小姐今年<xliff:g id="xxx">%d</xliff:g>岁了,上<xliff:g id="yyy">%s</xliff:g>年级!</string>


下面是java 代码


Resources res = getResources();
String sAgeFormat1 = getResources().getString(R.string.tipnumber);
String sFinalAge2 = String.format(sAgeFormat1, 1);
tv_time4.setText(sFinalAge2);


“`

如果要写 语文“二”的话,得把%s或者%2s改成%d(%2d),因为 d代表double,s代表string.

%nms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0

%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00

也可简单写成:

%d (表示整数)

%f (表示浮点数)

%s (表示字符串)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: