我有一个TextView,我试图显示一个基于2d字符的网格。在我的Java代码中,我创建了一个二维数组,我将该数组填充为字符串,并将每个条目一个接一个地追加到另一个,当到达数组行的末尾时,我还附加一个换行符(.n)。通过这种方式,我接着填充数组中所有条目的大长单数字符串(按照\ n的顺序)并执行setText(string)。这样,TextView应该在显示器上显示2d网格。它排序是这样的:顶行和底行都很好,但是行之间的结束字符和左侧的某处(大约13个字符)之间的每一行都缺少空格。
以下是制作数组的代码片段,用字符填充它,并将该数组转换为长字符串:
for(int row = 0; row < 22; row++){
for(int column = 0; column < 22; column++){
if(row == 0 || row == 21){
playField[row][column] = "#";
}else if(row > 0 && row < 21 ){
if(column == 0 || column == 21){
playField[row][column] = "#";
}else{
playField[row][column] = " ";
}
}
}
现在,将数组转换为字符串:
temp = new String();
for(int i = 0; i < 22; i++){
for(int j = 0; j < 22; j++){
temp+=playField[i][j];
}
temp+="\n";
}return temp;
这个字符串是我使用text.setText(temp)打开的,它可以工作,但它是这样的:第1列中的#,大约10个空格(按预期),然后是第13列中的另一个#,以及然后下一行。在第一行,有22个#符号,在底行有22个#符号。
我在xml:
中设置了textView <TextView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
答案 0 :(得分:0)
我认为问题在于你没有声明你的TextView使用等宽字体,所以所有空格都在那里,但它们不像#符号那么宽。
您可以像这样指定TextView的字体:
android:typeface="monospace"