2013-04-16 3 views
0

최근까지 Nexus 7 용 에뮬레이터 (7.27 ', 800x1280 : tvdpi)에서 테스트 한 태블릿 용 앱을 개발하고 있습니다. 삼성 전자 갤럭시 노트 2 (5.6 '', 720x1280 : xhdpi)와 비슷한 다른 에뮬레이터에서 앱을 테스트하기로 결정하기 전까지는 괜찮 았지만 잘 보입니다.Android tvdpi 대 xhdpi 화면 문제

예를 들어, 내가 사용하고있는이 맞춤 알림 대화 상자를 살펴보십시오.

<?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 everywhere와 sp를 사용합니다. 경고 대화 상자의 배경에 알리지 않으면 조각이 올바르게 표시되지 않습니다. 여기에서 살펴볼 수 있습니다. http://imageshack.us/g/692/tvdpi.jpg/

왜 그런가?

미리 감사드립니다.

답변

6

이클립스를 사용하는 경우 drawable-tvdpi와 같은 tvdpi 이미지에 대해 다른 Drawable 폴더를 만들 수 있으며 drawable-xhdpi가 이미 만들어져 있습니다. 다른 이미지의 밀도를 유지하십시오.

Nexus7 및 samsung galaxy 메모에 다른 레이아웃 폴더를 만듭니다.

nexus-7의 레이아웃 sw600dp와 Galaxy Nexus의 레이아웃 sw360dpi의 예입니다.

레이아웃 파일을 두 폴더에 보관하십시오.

이것은 작동합니다.