0

我不是设计师,但最近,我被要求为我公司的应用程序更改登录屏幕 UI。

我从设计师那里得到了背景图片。此图像是完整的登录屏幕。这意味着它是一个带有输入框(用户名和密码框)的单个 PNG 文件。

当然,即使它看起来像一个完整的登录屏幕,放在那里也不行,因为输入框是假的。

我试图将EditText小部件放在它上面,试图让它放在背景图像上的位置并将这两个小部件背景设置为无,这样用户就不会看到它。但是,在不同的设备上它只是显示不正确。有时在“背景输入框”上方,有时在其下方。无论如何,它不适合那里。

我想知道是否有一种方法可以让我解决这个问题。无论设备如何变化,都让小部件位于背景的确切位置。

这是我现在的布局,希望对您有所帮助:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainTableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/pbackground"
    android:stretchColumns="1" >

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="160dp" >

        <EditText
            android:id="@+id/txtBxPassword"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="10dp"
            android:ems="10"
            android:gravity="center_vertical|center_horizontal|center"
            android:height="33dp"
            android:password="true"
            android:singleLine="true"
            android:width="160dp" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/txtBxUserID"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_above="@+id/txtBxPassword"
            android:layout_alignLeft="@+id/txtBxPassword"
            android:layout_marginBottom="10dp"
            android:ems="10"
            android:gravity="center_vertical|center_horizontal|center"
            android:height="33dp"
            android:singleLine="true"
            android:width="160dp" />

    </RelativeLayout>
</RelativeLayout>

这是我从 Eclipse 中捕获的图像,如您所见,我EditText在背景上输入框的位置放置了两个框。但在真实设备上,它们会放错位置。

谢谢!

4

2 回答 2

0

您应该要求您的设计师为您提供各个元素的文件——例如,挂锁和头像图标本身,以及阴影框本身。将框转换为九补丁,并将其设置为合适布局元素的背景可绘制对象(即每行的容器布局)。

您还希望每个图像具有多种尺寸以支持不同的像素密度

如果你不这样做,你总会有一些设备的屏幕看起来很糟糕。

于 2013-03-07T21:38:12.420 回答
0

将linearlayout作为基本布局而不是相对布局......并使用tablerow布局并将小部件放置在其中明智地使用android:layout_margin和android:layout_width和android:layout_height......希望它会有所帮助

于 2013-03-07T21:16:16.400 回答