2014-05-22 86 views
0

我的硬件不同:佈局看設備上

  • 谷歌眼鏡(屏幕像素密度= 1.5,640 * 360像素分辨率)

  • VUZIX M100(屏幕像素密度= 0.75,432 * 244px分辨率)

這裏是我的佈局看起來像在谷歌玻璃:

enter image description here

和VUZIX:

enter image description here

佈局源:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ll_root" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="@dimen/activity_margin" 
    android:baselineAligned="false" 
    android:orientation="horizontal" > 

    <FrameLayout 
     android:id="@+id/content_secondary" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="2" 
     android:paddingRight="@dimen/layout_padding"> 
    </FrameLayout> 

    <View 
     android:layout_width="@dimen/separator_width" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="@dimen/separator_margin_bottom" 
     android:layout_marginTop="@dimen/separator_margin_top" 
     android:background="@android:color/darker_gray" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tv_instructions" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="@string/instruction_sign_in" 
      android:textSize="@dimen/instructions_text_size" /> 

     <FrameLayout 
      android:id="@+id/content_primary" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingLeft="@dimen/container_primary_padding_left" > 
     </FrameLayout> 
    </LinearLayout> 

<dimen name="activity_margin">1dp</dimen> 
<dimen name="separator_width">1dp</dimen> 
<dimen name="separator_margin_top">30dp</dimen> 
<dimen name="separator_margin_bottom">30dp</dimen> 
<dimen name="instructions_text_size">20sp</dimen> 
<dimen name="layout_padding">3dp</dimen> 
<dimen name="medium_text_size">30sp</dimen> 
<dimen name="small_text_size">22sp</dimen> 
<dimen name="almost_large_text_size">50sp</dimen> 
<dimen name="large_text_size">60sp</dimen> 
<dimen name="huge_text_size">100sp</dimen> 
<dimen name="container_primary_padding_left">10dp</dimen> 

來源爲右佈局部分:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="10dp"> 

    <TextView 
     android:layout_below="@id/tv_row_label" 
     android:id="@+id/tv_destination" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:text="AA" 
     android:textSize="@dimen/huge_text_size" /> 

</RelativeLayout> 

正如你所看到的所有值都是密度無關。但佈局仍然看起來不同。可能是什麼問題呢?

+1

您的設備是否有不同的物理尺寸? –

+0

@FD_他們有一個投影儀屏幕,所以我不能說真的。 –

+0

嘿@IgorFilippov:你是如何爲Google Glass和Vuzix m100開發的?你有使用不同的SDK? – Shruti

回答

1

問題是您的設備有不同的物理尺寸。由於投影屏幕可能不可見,但這是唯一可能的原因。

密度無關意味着您的小部件在不同的屏幕密度之間共享相同的物理尺寸。無論是hdpi還是ldpi設備,在任何設備上,您希望成爲XX dp的尺寸是YY釐米。

現在,由於您的設備在物理尺寸上有所不同,因此您會發現一個設備上的小部件之間有更大的空間,因爲它的屏幕更大。雖然小部件與其他設備具有相同的物理大小,但仍留有更多空閒空間。

一種解決方案是使用TextView,它可以自動調整其可用空間上的文本大小,如this one

+0

謝謝,我結束了正常和小屏幕的單獨尺寸。 –