2015-09-01 124 views
0

我做了一個Android應用程序。我希望它可以在平板電腦上使用,並具有相同的佈局文件。然而,不是爲了匹配平板電腦的尺寸而「縮放」接口,而是在電話接口的大小上,只是在一個大顯示屏上,導致了很多混亂。在Android上縮放手機應用程序佈局到平板電腦大小的屏幕

我試着做類似here的事情,但我不能因爲很多原因(例如,即時通訊使用當時不存在的庫)。

我該如何完成我的任務,除了爲所有尺寸做不同的佈局文件?請不要鏈接我this,我讀了幾次,並無法理解如何使其正常工作(除了一些limitLarge屬性,使其以醜陋和模糊的方式進行縮放)。

謝謝!

編輯:示例佈局,代碼如下:

這是它的外觀在手機上:

enter image description here

,這是它的外觀在平板電腦上:

enter image description here

你可以看到佈局'保留'了它的形成,但是我希望它'放大'來佔據它的位置ire screen。我覺得'問題出在'dp'的大小單位(因爲大屏幕有更多'dp'?),但我無法修復它。我對這種類型的發展相對較新,所以請幫我:)

<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:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" 
    android:id="@+id/authLayout"> 

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

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="FTW Name Placeholder" 
      android:id="@+id/textTitle" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="10dp" 
      android:layout_gravity="center_horizontal" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Medium Text" 
      android:id="@+id/textViewInst" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="5dp" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Connect" 
      android:id="@+id/btnConnect" 
      android:layout_gravity="center_horizontal" /> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:layout_gravity="center_horizontal"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Username:" 
       android:id="@+id/textView58" /> 

      <EditText 
       android:layout_width="220dp" 
       android:layout_height="wrap_content" 
       android:id="@+id/editTextUsername" 
       android:layout_marginLeft="10dp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:layout_gravity="center_horizontal"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Password" 
       android:id="@+id/textView59" /> 

      <EditText 
       android:layout_width="220dp" 
       android:layout_height="wrap_content" 
       android:id="@+id/editTextPassword" 
       android:layout_marginLeft="15dp" /> 
     </LinearLayout> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Auth" 
      android:id="@+id/authBtn" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="5dp" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:id="@+id/textView1" 
      android:scrollbars = "vertical" 
      android:gravity="bottom" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Next" 
      android:id="@+id/buttonSend" 
      android:layout_gravity="center_horizontal" /> 
    </LinearLayout> 

</RelativeLayout> 
+0

存儲dimens沒有任何佈局文件,我們甚至不能幫你。如果你有很難的高度/寬度值,你應該刪除它們,並在佈局上使用'match_parent/wrap_content' – tyczj

+0

你能發佈一個佈局示例嗎? – acostela

+0

@EdGeorge我並沒有要求提供「免費代碼」,而是要求提供正確的設置或方法。 我會在短時間內發佈一個佈局示例 – Zephyer

回答

1

對於您可以設置資源的寬度和高度dimens.xml /價值觀sw600dp這7" 平板電腦

+0

這是一個好的開始,謝謝 – Zephyer

0

你不需要針對任何特定的API來開發平板電腦應用,只需要提供針對高密度

可以存儲與同名但不同密度的後綴佈局資源,例如

佈局/ mylayout.xml - 任何設備 layout-w700dp/mylayout.xml - 寬度至少爲700dp的設備。

片大約700dp開始(從我的經驗得到這個值,沒有實際的數據,所以不要引用我的話)

閱讀這些文件,以瞭解更多

http://developer.android.com/guide/topics/resources/providing-resources.html http://developer.android.com/guide/practices/screens_support.html

PS 幫你一個忙,目標是4.0並且至少在 ,較舊的設備是一個痛苦的工作,他們現在有很少的市場份額。

+0

感謝您的回覆。 我爲Android 4+開發。 我會發布樣本佈局並進一步解釋我的問題。 – Zephyer

0

你很少會想設置這樣

android:layout_width="220dp" 

難寬度無處不在,你有類似的東西,你需要match_parent來取代它,這將確保寬度的尺寸與您的父母佈局寬度

相同

一樣與你的按鈕,你有這個

android:layout_width="wrap_content" 

使它們相匹配的父,他們將跨越SCR的寬度EEN。

沒有必要在不同的文件夾

+0

但讓我說我不想採取家長的全部寬度,並在開始時內容是空的。我應該使用「權重」嗎?那會有用嗎? 字體大小呢? – Zephyer

+0

你已經幾乎在你的手機佈局中佔據了你父母的全部寬度,再加上只是因爲它看起來像在那個設備上並不意味着它在具有更大或更小屏幕的其他人看起來如何。較小的屏幕布局可能會在側面切斷。字體大小呢? – tyczj

相關問題