我试图将加速度计数据显示为3行,如下所示:
X:9.8 m / s2
Y:0.0 m / s2
Z:-3.2 m / s2
但无论我尝试过什么,当其中一个值高于9.9或为负时,我似乎无法阻止m / s2来回移动。
E.g。
在 X:0.0 m / s2
在 X:-5.0 m / s2
我尝试了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>
感谢您的帮助!
答案 0 :(得分:0)
您需要修复文本视图的大小。它可以是dp中的宽度:layout_width =“30dp”
或者您可以为每个TextView使用权重:layout_width =“0dp”layout_weight =“1”,以便每个占用屏幕的三分之一(通过修改线性布局中的权重和weight_sum,您可以给出宽度)屏幕宽度的分数
答案 1 :(得分:0)
我自己遇到过这个问题,这就是我解决它的方法,稍加适应你的情况:
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)