布局在真实设备上看起来与在 Eclipse 的图形布局中显示的方式不同



我正在处理我的应用程序的UI。
我在 Eclipse 中编码时得到的图形布局看起来很完美,而且应该是这样。
但是当我在模拟器或设备上启动应用程序时,它会失真。
每个 UI 组件,如按钮、编辑文本和文本视图。
所有的边距和填充都会丢失。

        <LinearLayout
            android:id="@+id/ll_grand_parent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:gravity="fill_horizontal"
            android:orientation="vertical"
            android:weightSum="10" >

            <LinearLayout
                android:id="@+id/ll_button_signin_create_account"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
              android:layout_gravity="fill"
                android:layout_marginLeft="7dp"
                android:layout_marginTop="29dp"
                android:layout_weight="2"
                android:orientation="horizontal"
                android:visibility="visible"
               >
                <Button
                    android:id="@+id/button_common_singin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/transparent_button"
                    android:gravity="center"
                    android:text="Sign In"
                    android:textColor="#FFFFFF"
                    android:textSize="13sp" />
                <Button
                    android:id="@+id/button_common_create_account"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/colored_button"
                    android:gravity="center"
                    android:text="Create Account"
                    android:textColor="#FFFFFF"
                    android:textSize="13sp" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/signin_main"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="5.24"
                android:orientation="vertical"
                android:visibility="gone" >
                <LinearLayout
                    android:id="@+id/ll_parent_signin_email_password"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="20sp"
                    android:layout_weight=".8"
                    android:background="@drawable/border"
                    android:orientation="vertical"
                    android:visibility="visible" >
<LinearLayout
                        android:id="@+id/ll_signin_email"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:visibility="visible"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_space_signin_email"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="2" />
                        <TextView
                            android:id="@+id/textview_signin_email"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:text="Email"
                            android:textColor="#FFFFFF" />
                        <EditText
                            android:id="@+id/edittext_signin_email"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="john@hotmail.com"
                            android:textColorHint="#FFFFFF"
                            android:textSize="13dp" />
                    </LinearLayout>
                    <View
                        android:id="@+id/view_line_signin_email_password"
                        android:layout_width="fill_parent"
                        android:layout_height="1dip"
                        android:background="#FFFFFF" />
                    <LinearLayout
                        android:id="@+id/ll_signin_password"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:visibility="visible"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_space_signin_password"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="1" />
                        <TextView
                            android:id="@+id/textview_signin_password"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:text="Password"
                            android:textColor="#FFFFFF" />
                       <EditText
                            android:id="@+id/edittext_signin_password"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="4.49"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="*********"
                            android:password="true"
                            android:textColorHint="#FFFFFF" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_signin_logme_parent_button"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_marginTop="20dp"
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    android:visibility="visible"
                    android:weightSum="10" >
                    <TextView
                        android:id="@+id/textview_space_signin_loginme_button_lhs"
                        android:layout_width="0dp"
                        android:layout_height="fill_parent"
                        android:layout_weight="1" />
                    <Button
                        android:id="@+id/button_signin_loginme"
                        android:layout_width="0dp"
                        android:layout_height="fill_parent"
                        android:layout_weight="7"
                        android:background="#219AC7"
                        android:gravity="center"
                        android:text="Login Me"
                        android:textColor="#FFFFFF" />
                    <ImageView
                        android:id="@+id/textview_space_signin_logmebutton_rhs"
                        android:layout_width="0dp"
                        android:layout_height="fill_parent"
                        android:layout_weight=".7" />
                </LinearLayout>
               <RelativeLayout
                   android:id="@+id/relative_layout_signin_parent_forgetpassword"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:layout_marginLeft="14dp"
                    android:layout_marginTop="9dp"
                    android:visibility="visible" >
                    <TextView
                        android:id="@+id/textview_signin_forget_password"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="forget password"
                        android:textColor="#000000" />
                </RelativeLayout>
                <LinearLayout
                    android:id="@+id/ll_signin_orline_draw_parent"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_gravity="center"
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    android:visibility="visible"
                    android:weightSum="10" >
                    <View
                        android:layout_width="fill_parent"
                        android:layout_height="1dip"
                        android:layout_gravity="center"
                        android:layout_weight="4"
                        android:background="#000000"
                        android:padding="20dp" />
                    <ImageView
                        android:id="@+id/imageview_signin_or_drawline"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_weight="2"
                        android:src="@drawable/or" />
                    <View
                        android:layout_width="fill_parent"
                        android:layout_height="1dip"
                        android:layout_gravity="center"
                        android:layout_weight="4"
                        android:background="#000000"
                        android:padding="20dp" />
               </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_signin_parent_loginwith_facebook"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_marginTop="13dp"
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    android:visibility="visible"
                    android:weightSum="10" >
                    <TextView
                        android:id="@+id/textview_space_signin_facebook_lhs"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />
                    <ImageView
                        android:id="@+id/imageview_signin_facebook_logo"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="2"
                        android:background="@drawable/fb" />
                    <Button
                        android:id="@+id/button_singin_facebook"
                        android:layout_width="0dp"
                        android:layout_height="fill_parent"
                        android:layout_weight="6"
                        android:background="#3B5998"
                        android:text="login with facebook"
                        android:textColor="#FFFFFF" />
                    <TextView
                        android:id="@+id/textview_space_sigin_facebook_rhs"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/signup_main"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="6"
                android:orientation="vertical"
                android:visibility="visible" >
                <LinearLayout
                    android:id="@+id/ll_signup_parentlayout_name"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="20sp"
                    android:layout_weight=".8"
                    android:background="@drawable/border"
                    android:orientation="vertical"
                    android:visibility="visible" >
                    <LinearLayout
                        android:id="@+id/ll_singnup_firstname"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:visibility="visible"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_signup_firstname"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:text="First Name"
                            android:textColor="#FFFFFF" />
                        <EditText
                            android:id="@+id/edittext_signup_firstname"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="John"
                            android:singleLine="true"
                            android:textColor="#FFFFFF"
                            android:textColorHint="#FFFFFF"
                            />
                        <EditText
                            android:id="@+id/edittext_singup_email"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="john@xyz.com"
                            android:singleLine="true"
                            android:textColor="#FFFFFF"
                            android:textColorHint="#FFFFFF"
                            android:textSize="13dp"
                            android:visibility="gone" >
                        </EditText>
                    </LinearLayout>
                    <View
                        android:id="@+id/view_signup_line_draw_name_first_last_name"
                        android:layout_width="fill_parent"
                        android:layout_height="1dip"
                        android:background="#FFFFFF" />
                    <LinearLayout
                        android:id="@+id/ll_signup_lastname"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:visibility="visible"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_signup_lastname"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:text="Last Name"
                            android:textColor="#FFFFFF" />
                        <EditText
                            android:id="@+id/edittext_signup_lastname"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:layout_weight="4.47"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="Smith"
                            android:password="false"
                            android:singleLine="true"
                            android:textColor="#FFFFFF"
                            android:textColorHint="#FFFFFF" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_singnup_email_parent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="20sp"
                    android:layout_weight=".8"
                    android:background="@drawable/border"
                    android:orientation="vertical"
                    android:visibility="visible" >
                    <LinearLayout
                        android:id="@+id/ll_signup_email_address"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_signup_email"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:text="Email Address"
                           android:textColor="#FFFFFF" />
                          <EditText
                            android:id="@+id/edittext_signup_enteremail"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="4.49"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="john@xyz.com"
                            android:password="false"
                            android:singleLine="true"
                            android:textColor="#FFFFFF"
                            android:textColorHint="#FFFFFF" />
                    </LinearLayout>
                    <View
                        android:id="@+id/view_signup_draw_line_email"
                        android:layout_width="fill_parent"
                        android:layout_height="1dip"
                        android:background="#FFFFFF" />
                    <LinearLayout
                        android:id="@+id/ll_signup_reenter_email"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:orientation="horizontal"
                        android:visibility="visible"
                        android:weightSum="10" >
                        <TextView
                            android:id="@+id/textview_signup_reenteremail"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="3"
                            android:gravity="center"
                            android:singleLine="true"
                            android:text="Re Enter Email Address"
                            android:textColor="#FFFFFF" />
                        <EditText
                            android:id="@+id/edittext_signup_reenteremail"
                            android:layout_width="0dp"
                            android:layout_height="fill_parent"
                            android:layout_weight="4.49"
                            android:background="@android:color/transparent"
                            android:gravity="center"
                            android:hint="john@xyz.com"
                            android:password="false"
                            android:singleLine="true"
                            android:textColor="#FFFFFF"
                            android:textColorHint="#FFFFFF" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_signup_dob_button_parent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                  android:layout_marginTop="13dp"
                    android:divider="@drawable/divider"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:showDividers="middle"
                    android:visibility="visible"
                    android:weightSum="3" >
                    <Button
                        android:id="@+id/button_signup_day"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/round_button"
                        android:text="BirthDate"
                        android:textColor="#000000"
                        android:textSize="10sp" />
                    <Button
                        android:id="@+id/button_signup_month"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/round_button"
                        android:divider="@drawable/divider"
                        android:showDividers="middle"
                        android:text="BirthMonth"
                        android:textColor="#000000"
                        android:textSize="10sp" />
                    <Button
                        android:id="@+id/button_singup_year"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/round_button"
                        android:singleLine="true"
                        android:text="BirthYear"
                        android:textColor="#000000"
                        android:textSize="10sp" />
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_singup_radio_gender_parent"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="left"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal"
                    android:visibility="visible" >
                    <RadioGroup
                        android:id="@+id/radio_signup_radiogroup"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" >
                        <RadioButton
                            android:id="@+id/radiobutton_signup_male"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:cursorVisible="true"
                            android:text="male "
                            android:textColor="#FFFFFF"
                            android:textColorHighlight="#ED933E" />
                        <RadioButton
                            android:id="@+id/radiobutton_signup_female"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="female"
                            android:textColor="#FFFFFF" />
                    </RadioGroup>
                </LinearLayout>
                <Button
                    android:id="@+id/button_signup_createaccount"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="13dp"
                    android:layout_marginRight="13dp"
                    android:layout_weight=".003"
                    android:background="@drawable/colored_button"
                    android:text="Create My Account"
                    android:visibility="visible" />
        </LinearLayout>

这些是导致问题的原因

 android:weightSum="10"

您必须在每个视图上填充父视图,并为每个视图赋予权重才能完成这项工作。您可以通过这种方式获得一个漂亮的应用程序,但它非常劳动密集型,我们甚至没有讨论不同设备之间的文本大小。

还有其他东西,比如

android:layout_marginLeft="7dp"

想象一下一台 10 英寸的平板电脑和一部正常尺寸的手机。考虑两者的不同维度以及您的应用程序将如何扩展。如果将应用侧向转动,会发生什么情况?那会是什么样子呢?去这里,当你读完它时,再读一遍。http://developer.android.com/training/basics/supporting-devices/screens.html

最新更新