Я пытаюсь отобразить данные акселерометра в 3-х строках следующим образом:
X: 9,8 м/с2
Y: 0,0 м/с2
Z: -3.2 м/с2
Но независимо от того, что я пробовал, я не могу помешать перемещению m/s2 назад и вперед, когда одно из значений превышает 9.9 или отрицательное.
Например
До X: 0,0 м/с2
После X: -5.0 м/с2
Я попробовал tablelayout, но колонка просто растягивается, relativelayout, linearlayout и всевозможные комбинации дополнений, которые я могу придумать.
Здесь образец моего XML-кода, который находится внутри вертикальной линейной компоновки.
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="X:"
android:textSize="30sp" />
<TextView
android:id="@+id/x_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="30sp"
android:paddingRight="30sp"
android:text=" "
android:textSize="30sp"/>
<TextView
android:id="@+id/xAccelUnits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textSize="30sp" />
</LinearLayout>
Спасибо за вашу помощь!
вам нужно зафиксировать размер текстового вида. Это может быть либо ширина в dp: layout_width = "30dp"
или вы можете использовать вес: layout_width = "0dp" layout_weight = "1" для каждого TextView, так что каждый занимает треть экрана (путем изменения веса и веса_sum в линейном макете, вы можете дать ширину в долях ширина экрана)
У меня была эта проблема сама, вот как я ее решил, с небольшой адаптацией к вашему делу:
DecimalFormat df = new DecimalFormat("#00.00000"); //put this somewhere where you don't have to recreate it every time you get a new value.
String xAcc = df.format(event.values[0]);
xValueView.setText(xAcc);
(Где xValueView - это TextView, в котором вы хотите отобразить значение)