2014-12-02 71 views
0

我有一個簡單的屏幕有4個按鈕和其圖像: enter image description here按鈕文本丟失時在橫向模式

,當我將其更改爲橫向模式影像得到裁剪和文本丟失: enter image description here

我目前使用的線性佈局如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:orientation="vertical" 
    android:background="@drawable/rings" > 

    <LinearLayout 
     android:id="@+id/row1" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="top|fill_vertical" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/classesButton" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:contentDescription="@string/title_activity_class_list" 
      android:drawableBottom="@drawable/ic_classes" 
      android:onClick="viewClasses" 
      android:scaleType="fitCenter" 
      android:text="@string/classes" 
      android:minLines="1" 
      android:textColor="@android:color/primary_text_light" /> 

     <Button 
      android:id="@+id/studentsButton" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:drawableBottom="@drawable/ic_students" 
      android:onClick="viewStudents" 
      android:scaleType="fitCenter" 
      android:text="@string/students" 
      android:minLines="1" 
      android:textColor="@android:color/primary_text_light" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/row2" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="bottom|fill_vertical" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/levelsButton" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:contentDescription="@string/levels" 
      android:drawableBottom="@drawable/ic_levels" 
      android:minLines="1" 
      android:onClick="viewLevels" 
      android:scaleType="fitCenter" 
      android:text="@string/levels" 
      android:textColor="@android:color/primary_text_light" /> 

     <Button 
      android:id="@+id/skillsButton" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:contentDescription="@string/skills" 
      android:drawableBottom="@drawable/ic_skills" 
      android:onClick="viewSkills" 
      android:scaleType="fitCenter" 
      android:text="@string/skills" 
      android:minLines="1" 
      android:textColor="@android:color/primary_text_light" /> 

    </LinearLayout> 

</LinearLayout> 

更新我改變了規模型向fitCenter和預期那解決問題卻沒有。我真的很困惑,爲什麼縮放不會調整圖像的大小以適應內部佈局,看起來像其他人發現它可以縮放圖像以適應屏幕。

我已經嘗試使用相對佈局,但無法找到一個簡單的方法有4個按鈕填充屏幕同樣。

在此先感謝,我已經花了太多時間在這!

+0

我知道這是不是一個答案,但對於那種你正在使用的佈局,你可能只是想單純考慮禁用橫向模式。它看起來並不需要太多。它可以爲您節省大量頭痛! – 2014-12-02 03:04:29

+0

這是一個合理的想法亞歷克斯,不幸的是我發現,即使在縱向模式下,其他屏幕尺寸也有問題,所以我有一個更大的問題來解決,如果我可以獲得肖像和景觀的工作,我認爲將解決。 – bitrock 2014-12-07 22:03:30

回答

0

我終於想通了,這會導致縮放圖像是與相應的沿可見佈局文本。它花了很多試玩和錯誤的按鈕,ImageButtons和ImageViews。我現在使用的佈局包含可點擊的包含文本和圖像視圖的子線性佈局。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/rings" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/row1" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:baselineAligned="false" 
     android:gravity="top|fill_vertical" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:id="@+id/classesLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:clickable="true" 
      android:onClick="viewClasses" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:paddingTop="@dimen/input_padding" 
       android:text="@string/classes" 
       android:textColor="@android:color/primary_text_light" /> 

      <ImageView 
       android:id="@+id/classesIcon" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:src="@drawable/ic_classes" 
       android:contentDescription="@string/classes" 
       android:minLines="1" 
       android:scaleType="fitCenter" 
       android:textColor="@android:color/primary_text_light" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/studentsLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:clickable="true" 
      android:onClick="viewStudents" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:paddingTop="@dimen/input_padding" 
       android:text="@string/students" 
       android:textColor="@android:color/primary_text_light" /> 

      <ImageView 
       android:id="@+id/studentsIcon" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:src="@drawable/ic_students" 
       android:contentDescription="@string/students" 
       android:minLines="1" 
       android:scaleType="fitCenter" 
       android:textColor="@android:color/primary_text_light" /> 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/row2" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:baselineAligned="false" 
     android:gravity="bottom|fill_vertical" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:id="@+id/levelsLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:clickable="true" 
      android:onClick="viewLevels" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:paddingTop="@dimen/input_padding" 
       android:text="@string/levels" 
       android:textColor="@android:color/primary_text_light" /> 

      <ImageView 
       android:id="@+id/levelsButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:src="@drawable/ic_levels" 
       android:contentDescription="@string/levels" 
       android:minLines="1" 
       android:scaleType="fitCenter" 
       android:textColor="@android:color/primary_text_light" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/skillsLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@android:drawable/menuitem_background" 
      android:clickable="true" 
      android:onClick="viewSkills" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:paddingTop="@dimen/input_padding" 
       android:text="@string/skills" 
       android:textColor="@android:color/primary_text_light" /> 

      <ImageView 
       android:id="@+id/skillsButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:contentDescription="@string/skills" 
       android:src="@drawable/ic_skills" 
       android:minLines="1" 
       android:scaleType="fitCenter" 
       android:textColor="@android:color/primary_text_light" /> 
     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 

產生的縱向和橫向的效果是: enter image description here enter image description here

1

您可以更改圖像的Scale Type以查看哪個選項最適合您(可能由於圖像的fill_parent & Weight而失效)。

你可以做TextViews,並把圖像上方的文本而不是已經與文本(個人喜好)按鈕。

如果你將與四象聯繫我,我可以弄清楚你:)

馬庫斯

+0

感謝馬庫斯,我試圖改變規模類型,以適應中心,這似乎是幫助。現在我正在試驗嵌套線性佈局以包含一個textView和一個Button,這是我認爲你提到的首選項。看起來很有希望。如果它工作,我會發布結果。我寧願有一個更簡單的佈局,只是使用按鈕上的文字,但我不知道如何擺脫重量屬性,並保持一切均勻間隔。也許是網格佈局? – bitrock 2014-12-06 20:21:34