在Android小部件中可以出现占不同数量的单元格的小部件供选择,而且在这些小部件点击不同的View还会有不同的跳转。在本博客中将作简要的介绍。
运行结果:
上图是长按桌面后,选择添加小部件后出现的界面。
上图是将两个占不同单元格数量的小部件添加到桌面后的界面。单击TextView和ImageVIew会有不同的跳转。
工程目录:
在工程目录中的两个Activity只是用来做为不同的跳转对象。从工程目录中可以看到xml文件夹下有两个关于小部件的描述文件,当然需要在AndroidManifest.xml做相应的描述。
AndroidManifest.xml主要代码:
<receiver
android:name=".WeatherWidgetProvider"
android:icon="@drawable/ic_launcher"
android:label="@string/widget_l_name" >
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidget_provider" />
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>
<receiver
android:name=".WeatherMWidgetProvider"
android:icon="@drawable/ic_launcher"
android:label="@string/widget_m_name" >
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidgetm_provider" />
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>
在WeatherWidgetProvider和WeatherMWidgetProvider两个都是继承AppWidgetProvider的,只是两者中的处理有所不同,WeatherMWidgetProvider中为空的,现在主要介绍WeatherWidgetProvider中的内容。
WeatherWidgerProvider.java中主要代码:
public class WeatherWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
// 把数据显示上widget
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_l);
views.setTextViewText(R.id.textView_l, context.getResources()
.getString(R.string.widget_l_name));
// 添加响应事件
Intent intent = new Intent(context, RUIWidgetActivity.class);
PendingIntent Pintent = PendingIntent
.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.textView_l, Pintent);
Intent intentTest = new Intent(context, ActivityTest.class);
PendingIntent pintentTest = PendingIntent.getActivity(context, 0, intentTest, 0);
views.setOnClickPendingIntent(R.id.imagetView_l, pintentTest);
// 最后更新
appWidgetManager.updateAppWidget(appWidgetIds, views);
}
}
总结:
显示多个占不同单元格的小部件,主要需要在AndroidManifest.xml文件中描述两个Receiver,
点击事件就是对不同的Id传入不同的PendingIntent,如WeatherWidgetProvider中代码所示。
分享到:
相关推荐
每个小部件都有自己的设置并显示配置的日历事件和任务列表,以便您可以轻松了解到期、当前和即将到来的约会。 特征 没有广告。 免费和开源。 显示过去和未来选定时间段的日历和任务列表中的事件。 添加/删除/修改...
ConstraintLayout是Android的布局管理器,可让您灵活地定位和调整窗口小部件的大小。 它适用于Android视图系统和Jetpack Compose。 该存储库包含核心Java引擎,Android库,验证工具和实验。 有没有在这里回答的...
主应用程序允许用户定义将返回兼容小部件布局的服务器。 该项目使用 Spring for Android 来简化 REST 实现,因此您只需使用与其余端点将返回的对象相匹配的对象来定义文件。 一个典型的流程如下: 用户使
实现了类似于迷尚android和蘑菇街android的瀑布流布局。 19、JakeWharton-ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以就有了...
为应用程序特定的功能和窗口小部件创建了自定义视图,以在主屏幕上提供必要的快捷方式。 该应用程序使用Firebase身份验证和Firebase电子邮件验证通过电子邮件或Google登录对用户进行身份验证。 可以使用电子邮件...
EN | ... 抓取并移动任何小部件,查看小部件之间的边界和相对距离,检测对齐方式,布局和其他问题。 查看任何UI的层次结构,支持Activity,Dialog,PopupWindow等。 其他工具 实时显示当前活动。
BubbleLayout 具有自定义笔触宽度和颜色,箭头大小,位置和方向的Android Bubble View。 BubbleLayout扩展了FrameLayout。Gradle步骤1.将JitPack存储库添加到您的构建文件中allprojects {repositories {.. .maven { ...
iDroid布局 iDroid-Layout是Android布局系统及其可绘制和资源框架到iOS的移植。当前这是Alpha之前的实验版本,...强调在XML中定义布局在布局XML中使用本机UI小部件(如UIButton,UITextField等),甚至使用UIView的自定
动机需要显示大小可变的小部件(响应式界面)但保持相同的纵横比,尤其是标准化的小部件。代码示例< net .nantunes.widget.ProportionalLayout android : layout_margin = " 10dp " android : background = " @...
该项目旨在为Android平台提供一个简单的RTF编辑器UI小部件。 扩展了基本的EditText小部件功能,并具有文本格式设置功能。 当前支持的功能 基本文本格式(粗体,带下划线,斜体) 修改字体大小和样式的能力 将图片...
- 备份/恢复:在清除数据前导出您的设置和布局,以便快速恢复和运行 - 托盘窗口小部件:添加1x1尺寸的窗口小部件到托盘 - 重叠窗口小部件:调整尺寸或放置时允许重叠,长按置于底部或顶部 - 批量添加:一次添加多个...
自由地控制停靠栏内图标或文件夹的大小和状态(隐藏或显示).还能以魔幻般的波浪滑动方式打开停靠栏里的应用或文件夹. 4.具有完善的图标批量多选操作功能,无论在桌面,文件夹,停靠栏内都可以进行图标批量操作. 5.拥有...