我正在使用三星galaxy y,在我的程序中有几个活动。在每个活动中有许多小部件,如edittext,button,imagebutton。在那里的所有活动中,所有的小部件都在我的手机中扭曲。但一切都好与模拟器。如何解决此错误。
我注意到一件事,我的一个活动在滚动视图中包含小部件,一些小部件在其初始位置是可以的,而一些小部件在滚动时可以使用特定位置。
这些问题在我的模拟器中不受影响。
一个布局示例。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
>
<ImageButton android:src="@drawable/btclose"
android:id="@+id/btclose"
android:background="@android:color/transparent"
android:layout_width="32px"
android:layout_height="32px"
>
</ImageButton>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<EditText android:id="@+id/txtdisp"
android:layout_width="fill_parent"
android:layout_height="50px"
android:editable="false"
>
</EditText>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
>
<Button
android:id="@+id/btac"
android:layout_width="80px"
android:layout_height="50px"
android:text="AC"
>
</Button>
<Button
android:id="@+id/btbak"
android:layout_width="80px"
android:layout_height="50px"
android:text="bkspc"
>
</Button>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnum7"
android:layout_width="80px"
android:layout_height="50px"
android:text="7"
>
</Button>
<Button
android:id="@+id/btnum8"
android:layout_width="80px"
android:layout_height="50px"
android:text="8"
>
</Button>
<Button
android:id="@+id/btnum9"
android:layout_width="80px"
android:layout_height="50px"
android:text="9"
>
</Button>
<Button
android:id="@+id/btdiv"
android:layout_width="80px"
android:layout_height="50px"
android:text="/"
>
</Button>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnum4"
android:layout_width="80px"
android:layout_height="50px"
android:text="4"
>
</Button>
<Button
android:id="@+id/btnum5"
android:layout_width="80px"
android:layout_height="50px"
android:text="5"
>
</Button>
<Button
android:id="@+id/btnum6"
android:layout_width="80px"
android:layout_height="50px"
android:text="6"
>
</Button>
<Button
android:id="@+id/btmul"
android:layout_width="80px"
android:layout_height="50px"
android:text="*"
>
</Button>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnum1"
android:layout_width="80px"
android:layout_height="50px"
android:text="1"
>
</Button>
<Button
android:id="@+id/btnum2"
android:layout_width="80px"
android:layout_height="50px"
android:text="2"
>
</Button>
<Button
android:id="@+id/btnum3"
android:layout_width="80px"
android:layout_height="50px"
android:text="3"
>
</Button>
<Button
android:id="@+id/btsub"
android:layout_width="80px"
android:layout_height="50px"
android:text="-"
>
</Button>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btpoint"
android:layout_width="80px"
android:layout_height="50px"
android:text="."
>
</Button>
<Button
android:id="@+id/btnum0"
android:layout_width="80px"
android:layout_height="50px"
android:text="0"
>
</Button>
<Button
android:id="@+id/btequel"
android:layout_width="80px"
android:layout_height="50px"
android:text="="
>
</Button>
<Button
android:id="@+id/btadd"
android:layout_width="80px"
android:layout_height="50px"
android:text="+"
>
</Button>
</LinearLayout>
模拟器BuiltIn中的分辨率:WVGA800
答案 0 :(得分:2)
我花了几个小时才发现是什么导致了这个问题,但AndroidManifest.xml中缺少<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />
标签,无正常原因使得三星Galaxy Y的行为与此问题中描述的一样!
答案 1 :(得分:1)
您可以尝试将android:layout_height属性设置为&#34; wrap_content&#34;或&#34; fill_parent&#34;对于所有EditTexts和按钮?
此外,您使用像素硬编码宽度和高度的方式根本不是一个好习惯。如果你必须设置宽度和高度,请使用DP/SP which are mentioned here再次避免硬编码宽度n高度并切换到相对布局,这将有助于按钮和其他元素更好地相互对齐。
另请注意,手机的运行速度与Android模拟器上的分辨率完全不同,因此很多元素的呈现方式也不同。上面的链接提到了如何构建不同的布局,并包含不同的drawable来解释不同的分辨率和屏幕密度。