我的 Android 应用在真实设备(Samsung Galaxy Mini http://www.gsmarena.com/samsung_galaxy_mini_s5570-3725.php)上看起来与在模拟器上不同。
我有最新的 SDK,为 240x320 LDPI (120ppi) 设置的 AVD
我的布局:我有一个包含 4 个项目的垂直 linerlayout:4x 水平 linerlayout
<LinearLayout
android:id="@+id/LinearLayoutMainLines"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayoutMainLine1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
....
<LinearLayout
android:id="@+id/LinearLayoutMainLine4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout>
然后从代码中,我向所有 4 个“LinearLayoutMainLine”添加了 10 个按钮,所以最后我在屏幕上有 4x10 个按钮。
Button button = new Button(_context);
button.setTypeface( Typeface.MONOSPACE, Typeface.BOLD);
button.setOnClickListener(this);
button.setTextColor(0xFFFFFFFF);
button.setText(letter);
button.setBackgroundResource(id);
....later....
forall (buttons_line1)
layout1.addView(button);
....
forall (buttons_line4)
layout4.addView(button);
请注意,按钮的背景图像和文本会不时地从代码中更改,它们与创建时使用的不同。但是,所有使用的图像都是相同大小的(仔细检查),并且按钮的文本始终是 1 个字母。
问题:
在模拟器上:我有 4x10 大小为 19x36 的按钮
在迷你设备上:我有 3x10 大小为 19x38 的按钮,第 4 行是 19x32。最后一行按钮较短,因此它们的文本被切成两半。
使用的图像: res\ldpi\button.9.png 都是 18x26 大小。
什么可能导致这种差异?
我附上了一个合并的屏幕截图,左边是设备,右边是模拟器。
按照规格,Mini 的 ppi 约为 127,也许这就是问题所在?但是我不能为模拟器设置这个,因为它有固定的密度列表,而 120 是最接近的。但是,正如我提到的那样,这很好。
任何提示表示赞赏。谢谢