问题描述
我在开发直到最近在模拟器进行了测试的Nexus 7平板电脑(7.27'',800x1280:tvdpi)的应用程序。一切都很好,直到我决定测试应用程序在不同的模拟器,之一创建类似于三星Galaxy Note 2(5.6'',720x1280:xhdpi),它看起来并不那么好
I'm developing an app for a tablet which until recently was tested in an emulator for Nexus 7 (7.27'',800x1280:tvdpi). Everything was fine until I decided to test the app in a different emulator, one created similar to samsung galaxy note 2 (5.6'',720x1280:xhdpi) and it doesn't look so well.
例如,看看我用这个自定义警告对话框。
For example, take a look at this custom alert dialog I'm using.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_layout_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@color/light_gray">
<Button
android:id="@+id/facebook_login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"/>
<TextView
android:id="@+id/or_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:textSize="20sp"
android:textColor="@color/black"
android:layout_below="@id/facebook_login_button"/>
<TextView
android:id="@+id/sign_in_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textSize="20sp"
android:textColor="@color/gray"
android:layout_below="@id/or_text"/>
<EditText
android:id="@+id/login_email"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_below="@id/sign_in_text"
android:hint="@string/email_login"
android:inputType="textEmailAddress"/>
<EditText
android:id="@+id/login_password"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_below="@id/login_email"
android:hint="@string/pass_login"
android:inputType="textPassword"/>
<TextView
android:id="@+id/case_sensitive_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textSize="18sp"
android:textColor="@color/gray"
android:layout_below="@id/login_password"/>
<CheckBox
android:id="@+id/remember_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:layout_below="@id/case_sensitive_text"/>
<Button
android:id="@+id/sign_in_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/remember_login"
android:layout_marginLeft="300dp"/>
<TextView
android:id="@+id/forget_password_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:layout_marginLeft="180dp"
android:textSize="18sp"
android:textColor="@color/black"
android:layout_below="@id/sign_in_button"/>
<View
android:id="@+id/horizontal_line"
android:layout_width="360dp"
android:layout_marginTop="20dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_below="@id/forget_password_text"/>
<TextView
android:id="@+id/new_app_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="18sp"
android:textColor="@color/black"
android:layout_below="@id/horizontal_line"/>
<TextView
android:id="@+id/create_account_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="18sp"
android:textColor="@color/gray"
android:layout_below="@id/new_app_text"/>
<Button
android:id="@+id/create_account_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/create_account_text"
android:layout_marginLeft="250dp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/terms_conditions_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="12sp"
android:textColor="@color/gray"
android:layout_below="@id/create_account_button"/>
<TextView
android:id="@+id/vertical_rule"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="12sp"
android:textColor="@color/gray"
android:layout_below="@id/create_account_button"
android:layout_toRightOf="@id/terms_conditions_text"/>
<TextView
android:id="@+id/privacy_policy_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="12sp"
android:textColor="@color/gray"
android:layout_below="@id/create_account_button"
android:layout_toRightOf="@id/vertical_rule"/>
</RelativeLayout>
正如你可以看到我使用的是相对布局和我到处使用DP和SP的字体大小。
如果您发现的警告对话框中甚至没有片段显示正确的背景。
你可以在这里看看:
任何建议,为什么会出现这种情况?
Any suggestions why is this happening?
先谢谢了。
推荐答案
您可以创建tvdpi的图像,例如绘制-tvdpi和绘制,xhdpi如果你使用Eclipse已经创建了不同的文件夹,可绘制。
保持不同势图像accourding其密度。
You can create different Drawable folder for tvdpi images like drawable-tvdpi and drawable-xhdpi is already created if you use eclipse .Keep diffrent images accourding to their density.
请注意也创造Nexus7和三星Galaxy Note不同的布局文件夹中。
Note also create different layout folder for Nexus7 and samsung galaxy note .
例布局sw600dp于Nexus-7和布局sw360dpi了Galaxy Nexus的。
Example layout-sw600dp for nexus-7 and layout-sw360dpi for Galaxy nexus .
请您的布局文件这两个文件夹。
Keep your layout files in both folders.
这将工作:)
这篇关于Android的tvdpi VS xhdpi屏幕问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!