精华内容
下载资源
问答
  • Widget桌面

    2012-12-10 11:48:28
    该资源是我所编写的widge桌面插件,里面的代码都是比较基础的,你们可以考虑从基础的代码扩展。
  • 本篇文章主要介绍了Android中的 widget 桌面组件开发教程,对AppWidget 框架以及AppWidgetManger类进行详细讲解,开发Android widget 开发的朋友可以参考下
  • AppWidget桌面小控件

    2016-04-20 16:41:28
    AppWidget桌面小控件
  • Android widget 桌面插件

    2013-01-17 09:53:26
    Android widget 桌面插件,详细源码, 详细注释
  • 主要介绍了简单掌握Android Widget桌面小部件的创建步骤,Widget一般采用web前端技术进行开发,需要的朋友可以参考下
  • android的widget桌面开关例子,本来打算做一个对2G,4G开关的程序,满足在4G信号不好的时候手动切换到2G的状态,由于需要系统授权,所以只做了界面没有具体实现。
  • Android widget桌面插件

    2015-03-25 13:36:26
    Android widget桌面插件,在android系统应用开发层面有特殊用途。AppWidget是把一个进程的控件嵌入到别外一个进程的窗口里的一种方法。悬浮窗的效果与Widget很类似,但是它比Widget要灵活的多。
  • 可将你的心情讯录并用桌面组件的形式展示于桌面上,并有丰富的表情可供选择并加载在桌面上,此功能类似于QQ上的各性签名,可以看到手机主人的心情状况不是很好,注:因为这个小程序完全是App widget 桌面组件,所以...
  • widget桌面组件问题

    千次阅读 2011-09-13 23:15:37
    widget 桌面组件准确来讲应该是appwidget,平时习惯我们默认了widget就是说桌面组件,对于widget组件的发展历史可以参考这个网址http://baike.baidu.com/view/3541797.html  Intent taskClick =

           widget 桌面组件准确来讲应该是appwidget,平时习惯我们默认了widget就是说桌面组件,对于widget组件的发展历史可以参考这个网址http://baike.baidu.com/view/3541797.html

          

    Intent taskClick = new Intent(context, TaskStopProgress.class);
    			Intent sdClick = new Intent(SD_CLICK_ACTION);
    			Intent usbClick = new Intent(USB_CLICK_ACTION);
    			PendingIntent pendingIntent1;
    			PendingIntent pendingIntent2;
    			PendingIntent pendingIntent3;
    			pendingIntent2 = PendingIntent.getService(context1, 0, usbClick, 0);
    			pendingIntent1 = PendingIntent.getService(context1, 0, sdClick, 0);
    			pendingIntent3 = PendingIntent
    					.getActivity(context, 0, taskClick, 0);
    			rv.setOnClickPendingIntent(R.id.SD_ImgView, pendingIntent1);
    			rv.setOnClickPendingIntent(R.id.Task_ImgView, pendingIntent3);
    			rv.setOnClickPendingIntent(R.id.USB_ImgView, pendingIntent2);
    			appWidgetManager.updateAppWidget(appWidgetId, rv);
    一般的appwidget组件事件绑定方式如下,首先new Intent 新建的intent由你的PendingIntent通知对象不同而不同,如果为service我们既可以通过getbroadcast方式广播,然后再service那一端用getintent方式获取传递过来的消息,也可以通过getservice方式调用service,只不过这种方式和startservice方式是差不多的,我们在service的onstart方法中就可以通过其参数intent获取传递过来的消息(也可以在onstartcomment回调函数中获取),而Remotviews主要是通过AppWidgetManager对象的updateAppWidget函数进行更updateAppWidget第一参数有两种形式ComponentName和appWigetID(Int型也就是每个组件的id)而ComponentName
    		thisWidget = new ComponentName(OperaService.this,
    				TaskOperationProvider.class);
    构建形式如上代码所示,而AppwidgetManager构建形式如下:
    appManager = AppWidgetManager.getInstance(OperaService.this);
    其实说了这么多,在桌面组件更新时,最最关键的还是Remoteviews对象,我们先来看下其构造函数的两个参数帮助文档如下
    RemoteViews(String packageName, int layoutId)
    第一个为该应用的packageName,而第二个为appwidget的布局文件的id,所以只要Remoteviews得到的是同一appWdiget的对象,那么桌面组件的按键效果就会存在,但是如果android系统由于某种原因的launcher对所有的桌面组件重新rebinding了,那么此时自己的应用获取的RemoteViews还是不是以前那个呢,有可能不是了,所以此时会表现出桌面组件无响应现象,解决此问题方法有很多,其中一个有效方法便是重新执行setOnClickPendingItent重新绑定控件。
    展开全文
  • Widget桌面小组件-Android学习笔记 本篇文章是学习widget的笔记,参考学习了widget视频教程。 特点 快捷、方便 个性化、可定义功能 可及时控制更新Widget显示内容 用法步骤流程图 Created with ...

    Widget桌面小组件-Android学习笔记

    本篇文章是学习widget的笔记,参考学习了widget视频教程


    特点

    • 快捷、方便
    • 个性化、可定义功能
    • 可及时控制更新Widget显示内容

    用法步骤流程图

    Created with Raphaël 2.1.2绘制Widget布局配置Widget的基本属性定义AppWidgetProvider提供Configuration Activity

    学习目标

    • 掌握Android Widget基础用法及步骤
    • Android Widget实现一个基本的时钟功能

    效果

    • 可以自动更新时间
    • 可以添加删除时钟Widget

    实验过程

    绘制Widget布局
    以下代码写在widget.xml中:

    <TextView
        android:id="@+id/tv"
        android:text="时间显示"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    配置Widget的基本属性
    xml中新建widgetconfig.xml,配置widget的基本属性

    <appwidget-provoider xmls:android="http://schems.android.com/apk/res/android"
        android:initialLayout="@layout/widget"
        android:minHeight="40dp"
        android:minWidth="100dp"
        android:updtatePeriodMillis="864000" /> //刷新时间 

    定义AppWidgetProvider
    定义并实现provider的各种方法。更新、移除、刷新等。

        public class WidgetProvider extends AppWidgetProvoider{
    
            @Override
            public void onEnabled(Context context){
    
            super.onEnabled(context);
            //第一个widget添加到屏幕执行
            }
            @Override
            public void onReceive(Context context,Intent intent){
    
            super.onReceive(context, intent);
    
            }
            @Override
            public void onDeleted(Context context, int[] aapWidgetIds){
                super.onDeleted(context, appWidgetIds);
                //widget被屏幕移除
            }
            @Override
            public void onDisabled(Context context){
    
            super.onDisabled(context);
            //最后一个widget从屏幕移除执行
            }
    
            @Override
            public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
    
            super.onUpdate(context, appWidgetManager, appWidgetIds);
            //刷新widget
            //remoteView和AppWidgetManager 
            }
    
        }

    配置TimerSevice

        public class TimerService extends Service{
            private Timer timer;
            perivate SimpleDateFormat sdf = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
            @Override
            public IBinder OnBind(Intent arg0){
    
                return null;
            }
    
            @Override
            public void onCreate(){
    
                super.onCreate();
                timer = new Timer();
                timer.schedule(new TimerTask(){
    
                    @Override
                    public void run(){
    
                        updateViews();  
                    }
                    }, 0, 1000);    
            }
    
            private void updateViews(){
                String time = sdf.format(new Date());
                RemoteViews rv = new RemoteViews(getPackageName(),R.layout.widget);
                rv.setTextViewText(R.id.tv, time);
                AppwidgetManager manager = AppwidgetManager.getInstance(getApp;icationContext());
                ComponentName cn = new ComponentName(getApplicationContext(), WidgetProvider.class);
                manager.updateAppWidget(cn, rv);
            }
    
            @Override
            public void onDestroy(){
    
                super.onDestroy();
                timer = null;
            }
        }

    修改WidgetProvider
    写完TimerSevice后,需要更新Provider中的方法,使两者联系起来

            @Override
            public void onEnabled(Context context){
    
            super.onEnabled(context);
            //第一个widget添加到屏幕执行
            context.startService(new Intext(context, TimerService.class));
            }
    
    修改
    
            @Override
            public void onDisabled(Context context){
    
            super.onDisabled(context);
            //最后一个widget从屏幕移除执行
            context.stopService(new Intext(context, TimerService.class));
            }

    Widget Manifest.xml
    最后,需要在Manifest中注册上述定义的一系列东西

    注册service

    <service android:name="com.widget.TimerService" />

    注册widgetProvider

    <receiver android:name="com.winddows-8.Widget.WidgetProvider" >
        <intent-filter>
            <action android:name="android appwidget.action.APPWIDGET_UPDATE" />
        <intent-filter>
        <meta-data 
            android:name="android.widget.provider" 
            android:resource="@xml/widgetconfig" />
    </receiver>

    实验结果如图:

    作者:王新森
    原文链接:点击这里

    展开全文
  • android widget 桌面便签程序源代码

    千次下载 热门讨论 2010-12-23 16:43:55
    android widget 开发实例 : 桌面便签程序的实现详解和源码。本资源为源代码部分,讲解部分见本人blog: http://blog.csdn.net/silenceburn/archive/2010/12/23/6093074.aspx
  • 用AppWidget来实现桌面时钟插件,与系统时间相同。点击进入到应用
  • Widget 桌面小控件

    千次阅读 2017-06-15 19:44:04
    widget介绍 App widget 是可以被嵌入到其它应用程序中的窗口小部件。 流程 创建类继承AppWidgetProvider 在layout中创建widget布局文件 在res目录下创建xml文件夹,创建并初始化根节点为AppWidgetProvider的配置...

    widget介绍

    App widget 是可以被嵌入到其它应用程序中的窗口小部件。

    流程

    • 创建类继承AppWidgetProvider
    • layout中创建widget布局文件
    • res目录下创建xml文件夹,创建并初始化根节点为AppWidgetProvider的配置文件
    • 在清单文件中声明第一步继承AppWidgetProvider的类文件,同时配置第三步创建的配置文件
    • 在自定义的AppWidgetProvider中实现业务逻辑

    创建AppWidgetProvider子类

    AppWidgetProvider继承 BroadcastReceiver 能够接收相关的广播:widget的更新,删除,开启,禁用等.同时也可以接受自定义的广播.

    onUpdate()

    widget更新时被调用

    同样当用户首次添加widget时,该方法也会被调用.但是如果定义了widgetconfigure属性那么第一次添加时该方法不会被调用,只有当widget更新时才会被调用.

    onDeleted(Context, int[])

    widget被删除时该方法被调用

    onEnabled(Context)

    当第一个widget的实例被添加时会触发该方法.

    一个应用可以有多个不同尺寸的widget,一个widget可以被添加多次.这里主要针对第二点,该方法对于同一个widget只有在第一次添加时才被调用.

    onDisabled(Context)

    该方法和onEnabled ()方法对应,当最后一个widget被删除时该方法被调用.

    onReceive(Context, Intent)

    当收到在配置文件中注册的广播时,该方法会被回调

    总结

    AppWidgetProvider继承自BroadcastReceiver. 实质上AppWidgetProvider中的onUpdate``onDeleted``onEnabled``onDisabled``onReceive等方法都是在父类方法的onReceive方法中回调的:
    这里写图片描述
    这里写图片描述

    设计布局

    布局的设计就直接根据设计稿完成即可

    xml文件夹下的配置文件

    AppWidgetProviderInfo 描述app widget 元数据,比如布局,更新频率,预览图等信息.

    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
      android:minWidth="40dp"
      android:minHeight="40dp"
      android:updatePeriodMillis="86400000"
      android:previewImage="@drawable/preview"
      android:initialLayout="@layout/example_appwidget"
      android:configure="com.example.android.ExampleAppWidgetConfigure" 
      android:resizeMode="horizontal|vertical"
      android:widgetCategory="home_screen|keyguard"
      android:initialKeyguardLayout="@layout/example_keyguard">
    </appwidget-provider>

    minWidth 和minHeight

    它们指定了App Widget布局需要的最小区域。

    缺省的App Widgets所在窗口的桌面位置基于有确定高度和宽度的单元网格中。如果App Widget的最小长度或宽度和这些网格单元的尺寸不匹配,那么这个App Widget将上舍入到最接近的单元尺寸。单元格的尺寸是由所使用的launcher决定的。粗略计算可以参考下面这个表格:

    单元格格数(行/列) 对应的大小(dp)
    1 40dp
    2 110dp
    3 180dp
    4 250dp
    n 70*n-30

    updatePeriodMillis

    它定义了 widget 的更新频率。实际的更新时机不一定是精确的按照这个时间发生的。

    previewImage

    指定预览图,该预览图在用户选择 widget 时出现,如果没有提供,则会显示应用的图标。该字段对应在 AndroidManifest.xml 中 receiver 的 android:previewImage 字段。由 Android 3.0 引入。

    initialLayout

    指向 widget 的布局资源文件

    configure

    可选属性,定义了 widget 的配置 Activity。如果定义了该项,那么当 widget 创建时,会自动启动该 Activity。

    resizeMode

    指定了 widget 的调整尺寸的规则。可取的值有: “horizontal”, “vertical”, “none”。”horizontal”意味着widget可以水平拉伸,“vertical”意味着widget可以竖值拉伸,“none”意味着widget不能拉伸;默认值是”none”。Android 3.1 引入

    widgetCategory

    指定了 widget 能显示的地方:能否显示在 home Screen 或 lock screen 或 两者都可以。它的取值包括:”home_screen” 和 “keyguard”。Android 4.2 引入。

    initialKeyguardLayout

    指向 widget 位于 lockscreen 中的布局资源文件。Android 4.2 引入。

    清单文件中配置

    <receiver android:name=".ExampleAppWidgetProvider" >
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                    <action android:name="com.skywang.widget.UPDATE_ALL"/>
                </intent-filter>
                <meta-data android:name="android.appwidget.provider"
                    android:resource="@xml/example_appwidget_info" />
            </receiver>
    • ExampleAppWidgetProvider是继承于的AppWidgetProvider类,用来响应widget的添加、删除、更新等操作
    • android.appwidget.action.APPWIDGET_UPDATE,必须要显示声明的action!因为所有的widget的广播都是通过它来发送的;要接收widget的添加、删除等广播,就必须包含它
    • action android:name=”com.skywang.widget.UPDATE_ALL,自定义的广播
    • 指定了 AppWidgetProviderInfo 对应的资源文件
      android:name – 指定metadata名,通过android.appwidget.provider来辨别data。
      android:resource – 指定 AppWidgetProviderInfo 对应的资源路径。即,xml/example_appwidget_info.xml

    App Widget支持的布局和控件

    • App Widget支持的布局

      FrameLayout

      LinearLayout

      RelativeLayout

      GridLayout

    • App Widget支持的控件

      AnalogClock

      Button

      Chronometer

      ImageButton

      ImageView

      ProgressBar

      TextView

      ViewFlipper

      ListView

      GridView

      StackView

      AdapterViewFlipper

    展开全文
  • 上一篇Android Widget桌面组件教程整理(一)中已经比较全面的对Widgetz

    上一篇Android Widget桌面组件教程整理(一)中已经比较全面的对Widget做了一番讲解,大家读完应该对Wiget也有了一定了解,在这片博客中就对开发一个Widget的流程做一个总结。

    AppWidget的实现主要涉及到以下类: 
    AppWidgetProvider 
    RemoteViews 
    AppWidgetManager 

    一、首先需要提供一个定义了Widget界面布局的XML文件(位于res/layout/..),需要注意的是使用的组件必须是RemoteViews所支持的,目前原生API中支持的组件如下: 
    布局只能是:FrameLayout、LinearLayout、RelativeLayout 
    组件只能是:AnalogClock Button Chronmeter ImageButton ImageView ProgressBar TextView 

    *如果使用了除此之外的组件,则在Widget创建时会导致android.view.InflateExceptionn异常。 

    PS:这就导致有一些功能或样式无法实现,如很基本的list或文本编辑框都是无法直接实现的。如果想自定义Widget中的View的话只能通过修改framework来提供相应组件的支持。 

    二、然后需要提供一个xml文件来定义Widget的基本属性,放置到res/xml/..目录下。 
    如果使用的是Eclipse可按如下操作: 
    1) 在res/目录下创建xml/目录 
    2)创建xml文件(名字可任意),选择类型为AppWidgetProvider 
    3)在弹出的便捷界面进行参数设置 

    主要设置的参数如下: 
    minWidth: 定义Wdiget组件的宽度 
    minHeight: 定义Wdiget组件的高度 
    updatePeriodMillis: 更新的时间周期 
    initialLayout: Widget的布局文件 
    configure: 如果需要在启动前先启动一个Activity进行设置,在这里给出Activity的完整类名(后面会说到,与一般Activity的实现有些许差别) 

    *Widget大小的计算:(单元格数*74)-2,API上说是为了防止像素计算时的整数舍入导致错所以-2...不是很明白 

    一个完整的样例: 

        <?xml version="1.0" encoding="utf-8"?>  
        <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"  
              android:minWidth="80dp"  
              android:minHeight="32dp"  
              android:updatePeriodMillis="86400000"  
              android:initialLayout="@layout/widget_provider"  
              android:configure="com.demo.widget.MyWidgetConfiguration" >  
        </appwidget-provider> 

    三、xml都定义好后,接下来就是创建一个继承自AppWidgetProvider的子类,AppWidgetProvider实际上就是一个BroadcastReceiver,里面提供了以下函数: 
    onReceive(Context, Intent) 
    onUpdate(Context , AppWidgetManager, int[] appWidgetIds) 
    onEnabled(Context) 
    onDeleted(Context, int[] appWidgetIds) 
    onDisabled(Context) 
    可通过重写以上函数来监听Widget状态的变化并进行相应的处理。 

    以上函数具体调用情况归纳如下: 
    [启动 - 无confiure Activity] 
    onReceive 
    onEnabled —— 第一个widget被显示 
    onReceive 
    onUpdate —— 刷新界面 

    [启动 - 带confiuration Activity] 
    onReceive 
    onUpdate 

    [拖动] 
    <无状态变化> 

    [周期更新] 
    onReceive 
    onUpdate 

    [删除] 
    onReceive 
    onDeleted —— widget被删除 
    onReceive 
    onDisabled —— 最后一个widget被移除 

    [启动时位置不够] 
    onReceive 
    onEnabled 
    onReceive 
    onUpdate 
    onReceive 
    onDeleted 
    onReceive 
    onDisabled 

    *每次状态的变化会触发onReceive,一般该函数是不需要重写的。 

    简单了解AppWidgetProvider之后,我们来看具体实现。 
    这里创建一个MyAppWidgetProvider继承AppWidgetProvider: 
      public class MyWidgetProvider extends AppWidgetProvider {  
          
              static final String TAG = "widget";  
               
              /** 
               * 更新 
               */  
              public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){  
                    Log.i(TAG, "onUpdate");  
              }  
               
              /** 
               * 第一个Widget组件启动时触发 
               */  
              public void onEnabled(Context context){  
                    Log.i(TAG, "onEnabled");  
              }  
               
              /** 
               * 最后一个Widget组件关闭时触发 
               */  
              public void onDisabled(Context context){  
                    Log.i(TAG, "onDisabled");  
              }  
               
              /** 
               * 任一Widget组件被删除时触发 
               */  
              public void onDeleted(Context context, int[] appWidgetIds){  
                    Log.i(TAG, "onDeleted");  
              }  
               
              /** 
               * 以上函数触发前会先触发该函数,一般不需要重写 
               */  
              public void onReceive(Context context, Intent intent){  
                    Log.i(TAG, "onReceive");  
                    super.onReceive(context, intent);  
              }  
               
        }  
    


    其中onUpdate顾名思义是对Widget进行更新的,前面定义的更新周期就是作用于该函数的。 
    Widget的更新与Activity不同,必须借助于RemoteViews和AppWidgetMananger。具体实现如下: 
     public void onUpdate(Context context, AppWidgetMananger appWidgetManager, int[] appWidgetIds){  
            int N = appWidgetIds.length; // 可能启动了多个Widget,appWidgetIds记录了这些Widget的ID  
            for(int i=0; i<N; i++){  
                RemoteViews  views = new RemoteViews(getPackageName(), R.layout.widget_views);  
                appWidgetManager.updateAppWidget(appWidgetIds[i], views);  
            }  
        }  

    其中需要注意的是,虽然RemoteViews参数都是一样的,但是对于每个Widget最好都新创建一个再进行传递,否则会导致一些错误。具体可参考AppWidget RemoteViews 内存溢出 。 

    其他函数的可以根据需要实现。 

    由于无法获取到RemoteViews创建的界面中的元素,对于Widget中组件的操作只能通过RemoteViews所提供的有限的函数进行,常用的有: 
    setOnClickPendingIntent(int viewId, PendingIntent pendingIntent) 
    setProgressBar(int viewId, int max, int progress, boolean indeterminate) 
    setTextViewText(int viewId, CharSequence text) 
    setViewVisibility(int viewId, int visibility) 
    详细函数列表可参考API中的RemoteViews类 。 


    四、最后,更新AndroidManifest.xml。 
    AppWidgetProvider对应一个receiver属性:  

     <receiver android:name="MyWidgetProvider">  
                    <intent-filter>  
                        <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>  
                    </intent-filter>  
                    <meta-data android:resource="@xml/widget_property" android:name="android.appwidget.provider"></meta-data>  
                </receiver>  

    五、提供Configuration Activity 
    Configuration Activity是一个在Widget启动前先启动的Activity,方便用户对Widget的属性进行设置。 

    在res/xml/...下对应的"属性文件"中添加configure字段指定启动的Activity,并在AndroidManifest.xml中该Activity下提供一个action为android.appwidget.action.APPWIDGET_CONFIGURE 的IntenFilter。 

    需要注意的是, 
    如果设置了Configure属性,则必须在指定的Activity中进行如下处理: 
    1.在onCreate中setContentView()函数前添加setResult(RESULT_CANCLE) ,这样如果在Activity初始化完成前按下了BACK按键,则Widget不会启动; 
    2.在setContentView()函数之后(不一定要在onCreate中,在Activity退出前即可),添加如下设置以指定需要启动的Widget: 

        int mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);  
        Intent resultValue = new Intent();  
        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);  
        setResult(RESULT_OK, resultValue);  

    否则会导致退出Activity后Widget不启动。 

    >> Widget创建步骤汇总: 
    1.定义Widget布局XML -> res/layout/... 
    2.定义Widget属性文件(xml) -> res/xml/... 
    3. 创建AppWidgetProider子类,实现onUpdate()等函数,在manifest中注册receiver,添加一个action为 android.appwidget.action.APPWIDGET_UPDATE 的IntentFilter,并添加如下<meta- data>标识: 
    4. 创建Coniguration Activity(注意处理好setResult),添加到属性文件中的Configure属性,在manifest中注册activity,添加一个 action为android.appwidget.action.APPWIDGET_CONFIGURE 的IntentFilter 


    展开全文
  • Android-Widget桌面应用小部件

    千次阅读 2017-05-10 23:47:03
    官方文档中国版: ...介绍Android Widget桌面应用小部件,可嵌入桌面,并可周期性更新Widget界面! 例如在桌面的天气,日历类小工具就是Widget部件! 二.创建Widget广播接收器 p
  • 安卓学习笔记之使用widget桌面小控件一、 使用步骤创建所需要的Receiver,并在清单文件中配置 <!-- 桌面小部件 --> <receiver android:name="com.yu.receiver.SaferAppWidgetProvider" > &...
  • 掌握Widget的用:Widget的用途,能够添加到手机桌面的程序 2, Widget的特点和用法步骤: 特点:快捷,方便,个性化,可自定义功能,可及时控制更新Widget显示内容 3, 用法步骤流程图 绘制Widget布局 配置...
  • Widget桌面小部件

    2016-08-30 00:17:29
    1、需要在清单文件中配置元数据: 2、配置当前元数据要配置的xml文件;...4.实现一个桌面小部件的xml; li:<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:
  • Android的Widget桌面应用学习

    千次阅读 2016-05-04 14:10:03
    Android的Widget,后台Service发送广播,固定时间更新
  • 初识widget桌面小组件

    2015-11-13 20:56:38
    学习android widget的使用,使用高德地图的定位功能中的天气api来获取天气,做了个简单的demo。widget的开发步骤如下: (1)、编写widget布局和配置文件;(2)、编写自己的provider继承自AppWidgetProvider;(3)...
  • appwidget桌面小部件

    2016-05-17 10:36:02
    如何编写一个桌面小部件? 1> 首先新建一个AppWidget的布局Xml文件  res—>xml—>appwidget.xml   <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="250dp" ...
  • Android widget 桌面组件开发Widget是Android1.5版所引进的特性之一.Widget,可让用户在主屏幕界面及时了解程序显示的重要信息.标准的Android系统已包含几个Widget的示例,如模拟时钟,音乐播放器等.一、AppWidget 框架...
  • Android进阶之widget桌面

    千次阅读 2012-07-27 12:41:58
    Widget,就是应用程序的部分功能在桌面的快速打开方式。 关于Widget的使用,实战操作 1、写好widget的布局文件,想怎么布局就怎么写 2、在xml目录下写好资源文件 <appwidget-provider xmlns
  • 以在桌面上显示时间为例      继承自 AppWidgetProvider 并且间接父类是广播 BroadCastReceive 可以配置文件中的action----------------->android.appwidget.action.APPWIDGET_UPDATE 用于广播系统对...
  • android widget桌面时钟

    千次阅读 2011-02-14 14:09:00
    import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; ...
  • 1、分四个步骤: ... 绘制时钟布局 --> 配置Widget属性 --> 定义AppWidgetProvider --> 提供TimerService 其中AppWidgetProvider的使用类似广播接受者,在清单中的配置如下:          
  • Intent intent=new Intent().setAction("包名.IMG_CLICK"); ##必须写下面的语句 intent.setComponent(new ComponentName(context,当前类名.class)); PendingIntent pendingIntent=PendingIntent.getBroadcast...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,450
精华内容 8,180
关键字:

widget桌面