У меня есть TextView, который я пытаюсь сделать отображением 2d-символьной сетки. В моем Java-коде я создал массив 2d, я беру этот массив, заполненный строками, и добавляю каждую запись рядом с другой, и когда конец строки массива достигнут, я также добавляю символ новой строки (.n). Таким образом, я затем беру большую длинную сингулярную строку, полную всех записей в массиве (в порядке с \n) и do setText (строка). Таким образом, TextView должен отображать на экране 2-мерную сетку. Это похоже на то, что верхняя строка и нижняя строка являются точными, но каждая строка между ними пропускает пробелы между конечным символом в строке и где-то (приблизительно 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) on, и она работает, но она выглядит следующим образом: # в столбце 1, около 10 пробелов (по назначению), затем еще один # в столбце 13 или около того, а затем следующая строка, В верхнем ряду есть все 22 # знака, а в нижнем ряду есть все 22 # знака.
У меня есть textView как таковой в xml:
<TextView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
Я думаю, проблема заключается в том, что вы не объявили свой TextView использовать моноширинный шрифт, поэтому все пробелы есть, но они не такие широкие, как символ #.
Вы можете указать шрифт TextView следующим образом:
android:typeface="monospace"