2014-12-02 42 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