2010-03-30 173 views
1

从Android窗口小部件的屏幕指南http://developer.android.com/guide/practices/ui_guidelines/widget_design.html我们知道,主屏幕有4 * 4个单元格,并且在纵向上,每个单元格的宽度为80像素,高度为100像素。大屏幕或hdpi的主屏幕小部件大小?

我认为这些是基线HVGA屏幕。对于大屏幕和hdpi屏幕,他们是否仍然有4 * 4个单元格用于小部件,并且每个单元格在纵向上仍然是80像素* 100像素?

谢谢。

回答

2

您所指的像素是与设备无关的像素。正如你在the documentation here中看到的:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="294dp" 
    android:minHeight="72dp" 
    android:updatePeriodMillis="86400000" 
    android:initialLayout="@layout/example_appwidget" 
    android:configure="com.example.android.ExampleAppWidgetConfigure" > 
</appwidget-provider> 

请注意他们是如何使用dp单位,而不是px。这允许小部件正确地缩放到不同的屏幕分辨率。

至于屏幕是4x4单元,这是默认的Android主屏幕管理器的属性。无论屏幕分辨率如何,使用默认的Android主屏幕时,主屏幕都是4x4单元格。

还有其他家庭屏幕管理器有超过4x4的单元格,如爱可视平板电脑上的自定义主屏幕管理器。如果你想让你的appwidget在其他一些主屏幕管理器中工作,这些管理器可以做特殊的事情,比如增加屏幕上的单元格数量,或者允许文本输入和滚动应用程序部件,那么你可能不得不编写一个自定义版本你的那些主屏幕管理器的小部件。

因此,对于您的问题的答案,假设您始终针对默认的主屏幕管理器,则屏幕总是4x4单元格,只要您坚持使用与设备无关的像素,就没有任何额外的工作要做您的appwidget可在更高分辨率下正确缩放并正常工作。

+0

感谢您的意见。 还有一个问题。对于大屏幕和hdpi屏幕,一个单元仍然是80dip * 100dip纵向。 我问过这个,因为我需要在小部件中绘制视图。 谢谢。 – user256239 2010-03-30 18:12:01

+0

据我所知,单元格大小总是80dip和100dip。 – 2010-03-30 18:21:26

+0

深埋在SDK(http://developer.android.com/guide/topics/resources/providing-resources.html)中,它说“因此在三种密度之间有3:4:6的缩放比例” 。所以正常的(MDPI)单元尺寸是80x100,而大的(HDPI)单元尺寸是120x150。 – Andy 2010-11-09 03:57:27

2

当您使用图像时,必须将它们以不同的尺寸放入项目目录中的相关文件夹中。

示例: - 对图像视图使用100dip宽度 - 在文件夹“drawable-mdpi”中,您应该将.png宽度设置为100px。 - 文件夹“drawable-hdpi”.png宽度为150px - 文件夹“drawable-ldpi”.png宽度为75px