Android App Widget 设计
2012-09-26 12:29
183 查看
App Widget是一种UI组件,可以嵌入到手机桌面上。
比如天气的widget:
App Widget的实现流程:
比如天气的widget:
App Widget的实现流程:
1.App Widget的UI,xml布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/iv_weather" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/w_default" /> <TextView android:id="@+id/tv_city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/iv_weather" android:layout_alignRight="@+id/iv_weather" android:text="时间" tools:context=".MainActivity" /> </RelativeLayout>
2.设置App Widget的属性,在res/xml下新建appwidget_provider.xml
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="85dp" android:minHeight="30dp" android:updatePeriodMillis="1000" android:initialLayout="@layout/activity_main" > </appwidget-provider>
3.编写App Widget的主程序
public class MainActivity extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);//获取RemoteViews对象 String time = new Date().toLocaleString(); views.setTextViewText(R.id.tv_city, time); appWidgetManager.updateAppWidget(appWidgetIds, views);//更新widget } }
4.编辑AndroidManifest.xml
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name=".MainActivity" > <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> </application>
最后效果图:
相关文章推荐
- Android App Widget设计
- Android---App Widget(官方文档翻译)
- android 提升app启动速度以及Splash界面设计
- Android 之窗口小部件详解--App Widget
- Android实战:手把手实现“捧腹网”APP(二)-----捧腹APP原型设计、实现框架选取
- Android桌面组件App Widget开发三步走
- Android APP 设计说明书模板
- 假设让我又一次设计一款Android App
- iOS和Android的app界面设计规范
- Android笔记之AppWidget使用
- Android—AppWidget
- Android 应用APP界面设计思路
- Android中的AppWidget入门教程
- Android App的架构设计:从VM、MVC、MVP到MVVM
- 关于app的设计和切图( ios & Android )
- Android小挂件(APP Widgets)设计指导
- Android Material Design-Creating Apps with Material Design(用 Material Design设计App)-(零)
- Android之AppWidget的按钮事件开启Activity
- iOS和Android的app界面设计规范
- Android App 开发 设计模式第八篇:抽象工厂模式