如何在android中删除扭曲的小部件?

时间:2012-03-11 08:41:54

标签: android android-widget

我正在使用三星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

enter image description here

enter image description here

2 个答案:

答案 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来解释不同的分辨率和屏幕密度。