如何为电视设置任何布局(宽度,高度)?

问题描述:

我正在创建一个在Logitech revue上运行的应用程序。用户界面显示在电视屏幕上。如何为电视设置任何布局(宽度,高度)?

使用模拟器运行时布局看起来很好。但是当它显示在电视屏幕上时,部分内容会被切断。

如何调整:

  • 的android:layout_width
  • 安卓layout_height

,使其适合屏幕无论大小? fill-parent和wrap_content似乎没有解决这个问题。

如果可能的话,你能指导我一些资源吗?或者提供一个例子吗?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <GridView 
     android:id="@+id/propGridView" 
     android:layout_width="619dp" 
     android:layout_height="487dp" 
     android:layout_gravity="center_vertical" 
     android:numColumns="5" 
     android:paddingTop="20dp" > 
    </GridView> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="380dp" 
     android:layout_height="508dp" 
     android:layout_gravity="center" 
     android:orientation="vertical" > 

     <FrameLayout 
      android:id="@+id/frameLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" > 

      <ImageView 
       android:id="@+id/propertyThumbnail" 
       android:layout_width="match_parent" 
       android:layout_height="280dp" 
       android:layout_weight="0.10" 
       android:paddingTop="20dp" 
       android:src="@drawable/wow" /> 
     </FrameLayout> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:paddingTop="5dp" 
      android:text="Title" 
      android:textSize="20dp" /> 

     <TextView 
      android:id="@+id/description" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="Description" 
      android:textSize="10dp" /> 
    </LinearLayout> 

</LinearLayout> 
+0

后的XML为你的布局,所以我们可以看看一切 – dymmeh 2012-03-21 20:26:34

+0

的FrameLayout里@ dophie。我发布了xml – Fabii 2012-03-21 20:36:32

+0

看看我的答案,看看它是否有帮助。 – dymmeh 2012-03-21 20:50:38

设置固定值可能会导致您的视图出现问题。防爆。如果你有一个200dip宽度的视图,另一个宽度为400dip,并且屏幕支持的宽度为500dip,那么你的视图中会有一些事物被切断。

看看你的宽度使用权重。如果您提供一个视图的权重为.6,另一视图的权重为.4,则第一个视图将占用屏幕的60%,其他40%。这会阻止您将其他视图从屏幕上移开。

我修改了XML来说明其使用

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <GridView 
     android:id="@+id/propGridView" 
     android:layout_width="0dip" 
     android:layout_weight=".6" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_vertical" 
     android:numColumns="5" 
     android:paddingTop="20dp" > 
    </GridView> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="0dip" 
     android:layout_weight=".4" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:orientation="vertical" > 

     <ImageView 
      android:id="@+id/propertyThumbnail" 
      android:layout_width="match_parent" 
      android:layout_height="280dp" 
      android:layout_weight="0.10" 
      android:paddingTop="20dp" 
      android:src="@drawable/icon" /> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:paddingTop="5dp" 
      android:text="Title" 
      android:textSize="20dp" /> 

     <TextView 
      android:id="@+id/description" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="Description" 
      android:textSize="10dp" /> 
    </LinearLayout> 

</LinearLayout> 

我删除了,你有,因为它基本上是无用

+0

真棒,谢谢你,它像一个魅力工作。 – Fabii 2012-03-21 20:50:44

+0

我刚刚编辑了我的答案,并从XML中删除了FrameLayout。它没有做任何事情,也没有嵌套视图(如果可以避免的话)。但结果看起来是一样的。 – dymmeh 2012-03-21 20:52:06

这应该做的伎俩:

android:layout_width="MATCH_PARENT" 
android:layout_height="MATCH_PARENT" 

重新检查你的完整布局有布局PARAMS设置为“WRAP_CONTENT”视图的父母。这些会搞砸你的布局。

+0

这适用于所有视图还是仅适用于最顶层视图?请看看我上面发布的xml。 – Fabii 2012-03-21 20:38:29