0

我的 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 是最接近的。但是,正如我提到的那样,这很好。

任何提示表示赞赏。谢谢

4

0 回答 0