【发布时间】:2011-06-29 15:01:59
【问题描述】:
我正在尝试为我的 android 应用程序创建一个小部件。我希望它是一个单元格,但在右上角有一个注释。类似于在右上角显示未读电子邮件/短信计数的流行小部件。这似乎是一件很常见的事情,但我找不到任何关于如何构建它的例子。
我该怎么做?或者有什么资源可以教我如何做到这一点?
谢谢,
罗宾
【问题讨论】:
我正在尝试为我的 android 应用程序创建一个小部件。我希望它是一个单元格,但在右上角有一个注释。类似于在右上角显示未读电子邮件/短信计数的流行小部件。这似乎是一件很常见的事情,但我找不到任何关于如何构建它的例子。
我该怎么做?或者有什么资源可以教我如何做到这一点?
谢谢,
罗宾
【问题讨论】:
我不确定您是在问如何构建一个小部件,还是只是为了小的未读指示。 网上有一些教程,一般如何构建小部件。例如: this one 或 the official documentation。
一旦你掌握了这一点,小指标就变成了一个小问题,你只需要将它包含在你的布局中。更新小部件时,您只需更新指示计数的视图或在计数为 0 时将其可见性设置为不可见。
这种情况下的示例布局是
<FrameLayout>
<RelativeLayout> <ImageView /> </RelativeLayout>
<RelativeLayout> <TextView /> </RelativeLayout>
</FrameLayout>
这里的小部件由一个 ImageView 组成,您通常通过其周围的 RelativeLayout 将其居中。第二个 RelativeLayout 中的 Textview 可以是您的未读指示器。 像在 RelativeLayout 中一样将其放置在角落并设置样式(通过 android:background="@drawable/my_indicator_background" 或类似的方式)。
就是这样。 :)
【讨论】:
这样的小部件基本上是标准的RemoteViews 实现:http://developer.android.com/guide/topics/appwidgets/index.html 是小部件的指南。您需要一个 XML 布局,该布局将图标绘制为小部件背景,如果计数大于 0,则将其与角落中的图像覆盖。您可以使用带有背景图像的 TextEdit 视图和中心的图像数量背景作为计数。
当您需要更新它时,您可以从您的布局文件中创建一个新的 RemoteViews 实例,根据计数设置或隐藏 TextEdit,然后调用 http://developer.android.com/reference/android/appwidget/AppWidgetManager.html#updateAppWidget%28int,%20android.widget.RemoteViews%29 来更新小部件。
【讨论】: