我正在编写一个从ASCII时钟服务器获取时间并将其显示在屏幕上的应用程序。单击按钮时,AsyncTask将在后台运行以获取时间。 onProgressUpdate()将不断更新时间 - 参数s是存储ASCII时间的地方:
protected void onProgressUpdate(String... s) {
// I had to use a StringBuilder here because otherwise
// the real ASCII art won't be printed out
StringBuilder builder = new StringBuilder();
for(String str : s){
builder.append(str);
}
String tmp = builder.toString();
Log.i(TAG, tmp);
textView.setText("Server returned time: \n" + tmp);
}
记录的字符串看起来很好:
但是屏幕上显示的输出缺少很多空格:
不确定为什么会发生这种情况,因为传递给logcat的相同字符串也在TextView中设置。
答案 0 :(得分:0)
尝试在TextView中使用等宽字体。默认的可变宽度字体不会使空格的宽度与$。相同。
在TextView的XML中,添加以下属性:
Z= magic(4)
Z =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> W= sign(Z)== -1
W =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> xlswrite('sample.xlsx',W)
答案 1 :(得分:0)
你的问题是它将你的内部空间缩小了一半,
例如 - 8到4
因为Java字符串将每个char视为16位的unicode 你需要编码8位来显示相同的输出。
或试试这个
textView.setText(temp.replace(" "," "));
或
尝试使用服务器
上的& nbsp; 替换空格并将其用于setText
textView.setText(Html.fromHtml(temp));
答案 2 :(得分:0)
我明白了。 setTypeface()可以解决问题。