2010-08-05 43 views
2

看着Facebook小部件,我意识到它是一个4x2单元,这不是标准尺寸之一。我试图重新创建这种尺寸的小部件(无论是320x200还是294x146像素),但该部件在所有设备上看起来不太好。窗口小部件的布局是:Android 4x2小部件

<?xml version="1.0" encoding="utf-8"?> 
<!-- Portrait --> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/widget" 
    android:background="@drawable/widget_bg" 
    > 

     <TextView android:id="@+id/widget_title" 
      android:layout_width="fill_parent" 
      android:layout_height="60dip" 
      android:layout_marginTop="1dip" 
      android:textSize="20.0sp" 
      android:maxLines="3" 
      android:textColor="#000" 
      android:textStyle="bold" 
      android:gravity="center" 
      android:layout_marginLeft="10dip" 
      android:layout_marginRight="10dip" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentTop="true" 
      android:ellipsize="end" 
      /> 

      <ImageView android:id="@+id/widget_thumb" 
      android:layout_width="304dip" 
      android:layout_height="90dip" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="7dip" 
      android:src="@drawable/thumb_placeholder_large" 
      android:adjustViewBounds="true" 
      android:layout_below="@+id/widget_title" 
      android:background="#000" 
      /> 

    <!-- previous button --> 
    <Button 
     android:id="@+id/widget_previous" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="5dp" 
     android:layout_marginBottom="35dp" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/left_button"/> 

    <!-- Next Button --> 
    <Button 
     android:id="@+id/widget_next" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="5dp" 
     android:layout_marginBottom="35dp" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/right_button" /> 


    <!-- Indicator --> 

    <LinearLayout 
     android:id="@+id/widget_progressbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_marginBottom="33dp" 
     android:layout_marginRight="50dp" 
     android:layout_alignParentBottom="true"> 

     <!-- ProgressBar throws exception when it's set invisible from RemoteViews use a layout wrapper instead --> 
     <ProgressBar 
      android:layout_width="15dp" 
      android:layout_height="15dp"> 
     </ProgressBar> 
    </LinearLayout> 

</RelativeLayout> 

在摩托罗拉Droid这种布局大小合适,但是在其他设备上的ImageView坐在下面的方法。任何帮助/建议表示赞赏。

drawable_bg.png是294x146px。

  • 和Sandeep

回答

1

微件的实际大小取决于

  • 设备
  • 所使用的家庭应用(它们具有不同的通知条的显示分辨率(像素)和底杆)
  • Android操作系统版本(不同版本也有不同的家用应用程序)

所以最好让你的布局“fill_parent”和你的背景图像成为“ninepatch”图像。 还可以针对不同的显示分辨率(dpi)使用不同的背景图像,以使背景图像看起来很完美。

0

我认为你应该考虑为不同的屏幕尺寸创建更多的布局,并测试它们,以便确保你的部件在所有屏幕尺寸上都看起来不错。