精华内容
下载资源
问答
  • android widget 开发

    千次阅读 2018-08-10 17:36:24
    因为项目中需要用到widget,所以在这里大致记录一下widget的使用流程。因为没有深入的研究,所以仅仅是做一个大概的解析,因为需求简单,这里就不介绍RemoteViewService和RemoteViewFactory了,如果需要的不要浪费...

       因为项目中需要用到widget,所以在这里大致记录一下widget的使用流程。因为没有深入的研究,所以仅仅是做一个大概的解析,因为需求简单,这里就不介绍RemoteViewService和RemoteViewFactory了,如果需要的不要浪费时间看下去,抱歉各位。widget也叫小部件,是一个微型视图,其实在手机launcher中的表就是个widget。在开始流程之前需要明白两个概念:

        AppWidgetProviderInfo

    描述小部件的元数据元素,包括描述了部件的布局和更新频率,以及AppWidgetProvider的信息

       AppWidgetProvider

    基于广播事件,,在这里可以对widget进行一些操作,包括widget的启用,更新,删除等操作。因为继承自BroadcastReceiver,因此也可以根据最基本的广播操作来进行事件的处理。

       接下来就是开始创建widget,其实过程比较简单,studio提供了很多帮助:

         在这里直接创建widget,填写细节之后,就会生成一个继承自AppWidgetProvider的类,

    public class MyWidget extends AppWidgetProvider {
    
        static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                    int appWidgetId) {
    
            //在这里进行部件的更新。需要怎样操控部件都可以再这里通过RemoteViews实现。
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
            //这里会遍历所有的部件,然后都进行更新。
            for (int appWidgetId : appWidgetIds) {
    
                updateAppWidget(context, appWidgetManager, appWidgetId);
            }
        }
    
        @Override
        public void onEnabled(Context context) {
            // 当widget被创建的时候调用。
        }
    
        @Override
        public void onDisabled(Context context) {
            // Enter relevant functionality for when the last widget is disabled
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
            super.onReceive(context, intent);
            //这里可以接收自定义的一些广播,进行处理。
        }
    }

         同时在androidManifest文件中也会生成MyWidget的注册内容

    <receiver
                android:name=".widget.MyWidget"
                android:enabled="true"
                android:exported="true">
                <intent-filter>
                    <!-- 在这里还可以添加其他自定义的广播 -->
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
    
                <!-- widget的配置信息文件 -->
                <meta-data
                    android:name="android.appwidget.provider"
                    android:resource="@xml/new_app_widget_info" />
            </receiver>

       其中name属性表明类名,intent-filter表示的是接收的广播action,meta中的属性name表示meta-data的名称,这里必须是android.appwidget.provider, resource这里是表示资源文件的目录。接下来看资源文件:

    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:initialKeyguardLayout="@layout/new_app_widget"
        android:initialLayout="@layout/new_app_widget"
        android:minHeight="170dp"
        android:minWidth="250dp"
        android:previewImage="@drawable/example_appwidget_preview"
        android:resizeMode="horizontal|vertical"
        android:updatePeriodMillis="86400000"
        android:widgetCategory="home_screen"></appwidget-provider>

         initialkeyguardlayout表示了一个资源文件,在widget创建的时候可以立刻出现。4.2以后引入的。

         initialLayout 表示了widget的资源文件。

         minHeight和minWidth定义了widget的最小高和宽,低于这个值widget不可以用。

         previewImage这个就是一个预览图的效果。就像app的桌面logo,默认是applogo。

         resizeMode:指定widget大小在哪个方向调整。

         updatePerionMillis:这个只的是部件的更新频率,最小是半小时,设置的很小也会默认为半小时。

         widgetCategory:表示部件是否可以显示在主屏上,默认home_screen,还有power属性。

         到这里就可以通过new_app_widget这个布局文件来写小部件的布局了。需要注意的是这个布局文件支持的控件是有限制的, 首先自定义的控件不支持, 支持的布局控件如下:

         布局:FrameLayout,RelativeLayout,Linearlayout,GridLayout

         控件:Button,ImageButton, ImageView,TextView,ListView,GridView,AnalogClock,Progressbar,ViewFlpper,StackView

         更新部件的功能都是通过RemoteView来实现的,至于怎样更新可以根据自己的需求来定。如果用到listview,gridview等布局可以通过RemoteviewService来实现这个部件的更新,在我的项目里比较简单,直接通过启动一个service进行来更新:在MyWidget中的onenable中通过启动一个service来实现更新,

    private void updateWidget(Context context, WeatherWrap weatherWrap) {
            if (weatherWrap == null) {
                return;
            }
            ComponentName componentName = new ComponentName(context, WeatherWidget.class);
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
    
            remoteViews.setTextViewText(R.id.temperature, weatherWrap.getNow().getTemp()+"°C");
            remoteViews.setTextViewText(R.id.weather_status, DBHelper.getInstance().getWeatherTypeByCode(
                    weatherWrap.getNow().getWeatherType()));
            remoteViews.setTextViewText(R.id.city, weatherWrap.getRegion());
    
    
            remoteViews.setTextViewText(R.id.air_quality, weatherWrap.getAqi().getAqi() + " "
                    + weatherWrap.getAqi().getQuality());
    
            if (weatherWrap.getSuggestion().getDressing() != null) {
                remoteViews.setTextViewText(R.id.clothing_index, weatherWrap.getSuggestion().getDressing().getBrief());
            }
            remoteViews.setTextViewText(R.id.humidity, weatherWrap.getNow().getHumidity() + "%");
    
            if(weatherWrap.getSuggestion().getHongfans() != null){
                remoteViews.setTextViewText(R.id.env_status,weatherWrap.getSuggestion().getHongfans().getDetails());
            }
    
            remoteViews.setImageViewResource(R.id.weather_bg, Utils.weatherCode2BG(weatherWrap.getNow().getWeatherType()));
    
            //在这里添加一个点击事件,当点击id为city的按钮会跳转到制定activity
            Intent intent = new Intent(context, WeatherActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
            remoteViews.setOnClickPendingIntent(R.id.city, pendingIntent);
    
            AppWidgetManager awm = AppWidgetManager.getInstance(context.getApplicationContext());
            awm.updateAppWidget(componentName, remoteViews);
        }
    

            可以看到remoteVIew的设置控件内容的方式,以及点击跳转的方式。最后都需要通过AppWidgetManager来进行更新。在MyWidget文件的updateAppWidget()函数中也需要添加好更新widget的方法。至于具体的更新方式要根据自己的项目需求而定。

        

    展开全文
  • Android Widget开发

    2011-06-24 14:54:40
    把AppWidget添加到桌面后,点击AppWidget后AppWidget文本会轮回改变 ...res/xml/widget.xml布局文件: [code="java"] [/code] AndroidManifest.xml: [code="java"] ...
    把AppWidget添加到桌面后,点击AppWidget后AppWidget文本会轮回改变

    main.xml布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:id="@+id/layout" android:layout_height="fill_parent">
    <Button android:text="@string/login" android:id="@+id/TextView01"
    android:clickable="true" android:layout_width="wrap_content"
    android:layout_height="wrap_content"></Button>
    </LinearLayout>


    res/xml/widget.xml布局文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- AppWidgetProvderInfo: 描述AppWidget的大小、更新频率和初始界面等信息,以XML文件形式存在于应用的res/xml/目录下。
    注意:SDK1.5之后此android:updatePeriodMillis就失效了,要自己创建service更新 -->
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="60dp" android:minHeight="30dp"
    android:updatePeriodMillis="86400000" android:initialLayout="@layout/main">
    </appwidget-provider>


    AndroidManifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.iaiai.activity" android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <!-- <activity android:name="IaiaiActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"
    /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
    </activity> -->

    <receiver android:name=".IaiaiWidget" android:label="添加桌面控件">
    <meta-data android:name="android.appwidget.provider"
    android:resource="@xml/widget"></meta-data>
    <intent-filter>
    <action android:name="com.iaiai.widget.click"></action>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>
    </receiver>
    </application>
    </manifest>


    变量类UtilTool.java:用来控件文本改变:

    package com.iaiai.activity;

    /**
    *
    * <p>
    * Title: UtilTool.java
    * </p>
    * <p>
    * E-Mail: 176291935@qq.com
    * </p>
    * <p>
    * QQ: 176291935
    * </p>
    * <p>
    * Http: iaiai.iteye.com
    * </p>
    * <p>
    * Create time: 2011-6-24
    * </p>
    *
    * @author 丸子
    * @version 0.0.1
    */
    public class UtilTool {

    public static boolean isChange = true;

    }


    IaiaiWidget.java类:

    package com.iaiai.activity;

    import android.app.PendingIntent;
    import android.appwidget.AppWidgetManager;
    import android.appwidget.AppWidgetProvider;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    import android.widget.RemoteViews;

    /**
    *
    * <p>
    * Title: IaiaiWidget.java
    * </p>
    * <p>
    * E-Mail: 176291935@qq.com
    * </p>
    * <p>
    * QQ: 176291935
    * </p>
    * <p>
    * Http: iaiai.iteye.com
    * </p>
    * <p>
    * Create time: 2011-6-24
    * </p>
    *
    * @author 丸子
    * @version 0.0.1
    */
    public class IaiaiWidget extends AppWidgetProvider {

    private static final String CLICK_NAME_ACTION = "com.iaiai.widget.click";

    private static RemoteViews rv;

    @Override
    public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    Log.i("**************", "onReceive");

    if (rv == null) {
    rv = new RemoteViews(context.getPackageName(), R.layout.main);
    }
    if (intent.getAction().equals(CLICK_NAME_ACTION)) {
    if (UtilTool.isChange) {
    rv.setTextViewText(R.id.TextView01, "abc");
    } else {
    rv.setTextViewText(R.id.TextView01, "123");
    }
    UtilTool.isChange = !UtilTool.isChange;
    AppWidgetManager appWidgetManger = AppWidgetManager
    .getInstance(context);
    int[] appIds = appWidgetManger.getAppWidgetIds(new ComponentName(
    context, IaiaiWidget.class));
    appWidgetManger.updateAppWidget(appIds, rv);
    } else {
    super.onReceive(context, intent);
    }
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
    int[] appWidgetIds) {
    Log.i("**************", "onUpdate");
    final int N = appWidgetIds.length;
    for (int i = 0; i < N; i++) {
    int appWidgetId = appWidgetIds[i];
    updateAppWidget(context, appWidgetManager, appWidgetId);
    }
    }

    private void updateAppWidget(Context context,
    AppWidgetManager appWidgeManger, int appWidgetId) {
    rv = new RemoteViews(context.getPackageName(), R.layout.main);
    Intent intentClick = new Intent();
    intentClick.setAction(CLICK_NAME_ACTION);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
    intentClick, 0);
    rv.setOnClickPendingIntent(R.id.TextView01, pendingIntent);
    appWidgeManger.updateAppWidget(appWidgetId, rv);
    }

    }


    运行结果:
    [img]http://dl.iteye.com/upload/attachment/504148/5b6eb2f2-2c28-39fc-92d7-27d1e9a339fa.jpg[/img]
    [img]http://dl.iteye.com/upload/attachment/504150/b515000e-a6ac-309f-8641-22c7e3e3d37f.jpg[/img]
    展开全文
  • 解析Android Widget开发实例 2011-09-07 17:54 佚名 互联网 我要评论(0) 字号:T | T Android Widget开发案例实现是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,具体内容的实现来...

    解析Android Widget开发实例

     

    Android Widget开发案例实现是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,今天我们要写一下Android Widget开发,由于快点凌晨,我就不说的太具体了,同志们就模仿吧!首先看一下效果图:

    解析Android Widget开发案例实现


     
    下面是Demo的详细步骤:

    一、新建一个Android工程命名为:WidgetDemo.

    二、准备素材,一个是Widget的图标,一个是Widget的背景。存放目录如下图:

    解析Android Widget开发案例实现

    三、修改string.xml文件如下:

    1. <?xml version="1.0" encoding="utf-8"?>    
    2. <resources>    
    3.     <string name="hello">Hello World, WidetDemo!</string>    
    4.     <string name="app_name">DaysToWorldCup</string>    
    5. </resources>   

    四、建立Widget内容提供者文件,我们在res下建立xml文件夹,并且新建一个widget_provider.xml代码入下:

    1. <?xml version="1.0" encoding="utf-8"?>    
    2. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"    
    3.     android:minWidth="50dip"    
    4.     android:minHeight="50dip"    
    5.     android:updatePeriodMillis="10000"    
    6.     android:initialLayout="@layout/main"    
    7. />    

    五、修改main.xml布局,代码如下:

    1. <?xml version="1.0" encoding="utf-8"?>    
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    3.     android:orientation="vertical"    
    4.     android:layout_width="fill_parent"    
    5.     android:layout_height="fill_parent"    
    6.     android:background="@drawable/wordcup"    
    7.     >    
    8. <TextView      
    9.     android:id="@+id/wordcup"    
    10.     android:layout_width="fill_parent"     
    11.     android:layout_height="wrap_content"     
    12.     android:text="@string/hello"    
    13.     android:textSize="12px"    
    14.     android:textColor="#ff0000"    
    15.     />    
    16. </LinearLayout>   

    六、修改WidgetDemo.java代码如下:

    1. package com.android.tutor;    
    2. import java.util.Calendar;    
    3. import java.util.Date;    
    4. import java.util.GregorianCalendar;    
    5. import java.util.Timer;    
    6. import java.util.TimerTask;    
    7. import android.appwidget.AppWidgetManager;    
    8. import android.appwidget.AppWidgetProvider;    
    9. import android.content.ComponentName;    
    10. import android.content.Context;    
    11. import android.widget.RemoteViews;    
    12. public class WidetDemo extends AppWidgetProvider {    
    13.     /** Called when the activity is first created. */    
    14.       
    15.     @Override    
    16.     public void onUpdate(Context context, AppWidgetManager appWidgetManager,    
    17.             int[] appWidgetIds) {    
    18.             
    19.         Timer timer = new Timer();    
    20.         timer.scheduleAtFixedRate(new MyTime(context,appWidgetManager), 1, 60000);    
    21.         super.onUpdate(context, appWidgetManager, appWidgetIds);    
    22.     }    
    23.         
    24.     private class MyTime extends TimerTask{    
    25.         RemoteViews remoteViews;    
    26.         AppWidgetManager appWidgetManager;    
    27.         ComponentName thisWidget;    
    28.             
    29.         public MyTime(Context context,AppWidgetManager appWidgetManager){    
    30.             this.appWidgetManager = appWidgetManager;    
    31.             remoteViews = new RemoteViews(context.getPackageName(),R.layout.main);    
    32.                 
    33.             thisWidget = new ComponentName(context,WidetDemo.class);    
    34.         }    
    35.         public void run() {    
    36.                 
    37.             Date date = new Date();    
    38.             Calendar calendar = new GregorianCalendar(2010,06,11);    
    39.             long days = (((calendar.getTimeInMillis()-date.getTime())/1000))/86400;    
    40.             remoteViews.setTextViewText(R.id.wordcup, "距离南非世界杯还有" + days+"天");    
    41.             appWidgetManager.updateAppWidget(thisWidget, remoteViews);    
    42.                 
    43.         }    
    44.     }    
    45. }   

    七、修改配置文件AndroidManifest.xml,代码如下:

    1. <?xml version="1.0" encoding="utf-8"?>    
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"    
    3.       package="com.android.tutor"    
    4.       android:versionCode="1"    
    5.       android:versionName="1.0">    
    6.     <application android:icon="@drawable/icon" android:label="@string/app_name">    
    7.         <receiver android:name=".WidetDemo"    
    8.                   android:label="@string/app_name">    
    9.             <intent-filter>    
    10.                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />    
    11.             </intent-filter>    
    12.             <meta-data android:name="android.appwidget.provider"    
    13.                        android:resource="@xml/widget_provider"    
    14.             />    
    15.         </receiver>    
    16.     </application>    
    17.     <uses-sdk android:minSdkVersion="7" />    
    18. </manifest>    

    八、点击运行(Ctrl+F11),之,运行成功后,我们长时间点击桌面,会出现如下俩个,依次点击,就可以看到最上面的效果图:

    解析Android Widget开发案例实现 

    解析Android Widget开发案例实现

    小结:解析Android Widget开发案例实现的内容介绍完了,希望通过Android Widget开发内容的学习能对你有所帮助!

    【编辑推荐】

    展开全文
  • android 源码 android Widget开发案例 eclipse项目 直接导入 ,掌握widget开发,让你的手机‘炫’起来
  • Android Widget开发模板是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,Android Widget中使用了Java语言开发比W3C的Widget运行效率提高了不少,可以做更多的事情调用系统的API,除了UI上的限制外...

    Android Widget开发模板是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,Android Widget中使用了Java语言开发比W3C的Widget运行效率提高了不少,可以做更多的事情调用系统的API,除了UI上的限制外,我们可以考虑帮助系统完善一些appWidget,Android 123给出大家一个开发Widget的模板。

    1. public class cwjWidget extends AppWidgetProvider {  
    2.     @Override  
    3.     public void onUpdate(Context context, AppWidgetManager appWidgetManager,  
    4.             int[] appWidgetIds) {  
    5.                 context.startService(new Intent(context, UpdateService.class)); //这里创建一个服务,防止出现等待超时对话框  
    6.     }  
    7.     public static class UpdateService extends Service {  //这个内部的服务我们推荐新开一个线程操作一些容易阻塞的情况,比如网络下载等等  
    8.         @Override  
    9.         public void onStart(Intent intent, int startId) {  
    10.  
    11.             RemoteViews updateViews = buildUpdate(this);  
    12.  
    13.             ComponentName thisWidget = new ComponentName(this, cwjWidget.class);  
    14.             AppWidgetManager manager = AppWidgetManager.getInstance(this);  
    15.             manager.updateAppWidget(thisWidget, updateViews);  
    16.         }  
    17.  
    18.         public RemoteViews buildUpdate(Context context) {  
    19.              Resources res = context.getResources();  
    20.             RemoteViews updateViews = new RemoteViews(  
    21.                 context.getPackageName(), R.layout.main);  //主Widget的layout布局  
    22.  
    23.             PendingIntent pendingIntent = PendingIntent.getActivity(context,  
    24.                     0 /* no requestCode */,  
    25.                     new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS),  
    26.                     0 /* no flags */);  
    27.             updateViews.setOnClickPendingIntent(R.id.ui, pendingIntent); //单击view打开intent,目标为系统信息,就是上面的action位置  
    28.  
    29.             updateViews.setTextViewText(R.id.info,     
    30.                 android.os.Build.VERSION.CODENAME + " " +  
    31.                 android.os.Build.ID);   //这里是API的获取系统版本的方法  
    32.  
    33.             updateViews.setTextViewText(R.id.changelist,  
    34.                 android.os.Build.FINGERPRINT  
    35.                 );  
    36.             return updateViews;  
    37.         }  
    38.         @Override  
    39.         public IBinder onBind(Intent intent) {  
    40.             return null;  
    41.         }  
    42.     }  

    有关涉及到的 androidmanifest.xml内容

    1. xml version="1.0" encoding="utf-8"?> 
    2. manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    3.    package="com.android123.widget" 
    4.    android:versionCode="1" 
    5.    android:versionName="1.0"> 
    6.  
    7.    <uses-SDK android:minSdkVersion="3" /> 
    8.    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
    9.        <receiver android:name=".BuildWidget" android:label="android123_cwj"> 
    10.            <intent-filter> 
    11.                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
    12.            intent-filter> 
    13.            <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" /> 
    14.        receiver> 
    15.        <service android:name=".cwjWidget$UpdateService" /> 
    16.    application> 
    17.     
    18. /manifest> 

    android manifest.xml上面提到的  \res\xml\widget.xml文件内容

    1. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    2. android:minWidth="150dip" 
    3. android:minHeight="72dip" 
    4. android:updatePeriodMillis="0" 
    5. android:initialLayout="@layout/widget" />  

    有关 main.xml的内容为

    1. xml version="1.0" encoding="utf-8"?> 
    2.  
    3. LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    4.    android:id="@+id/ui" 
    5.    android:layout_width="fill_parent" 
    6.    android:layout_height="wrap_content" 
    7.    android:orientation="vertical" 
    8.    android:padding="6dip" 
    9.    > 
    10.  
    11.    <TextView 
    12.        android:id="@+id/info" 
    13.        android:layout_width="fill_parent" 
    14.        android:layout_height="wrap_content" 
    15.        android:gravity="left" 
    16.        android:textSize="18dip" 
    17.        /> 
    18.  
    19.    <TextView 
    20.        android:id="@+id/changelist" 
    21.        android:layout_width="fill_parent" 
    22.        android:layout_height="wrap_content" 
    23.        android:gravity="left" 
    24.        android:layout_marginTop="4dip" 
    25.        android:textSize="9dip" 
    26.        /> 
    27. /LinearLayout> 

    小结:Android Widget开发模板解析的内容介绍完了,希望通过Android Widget开发内容的学习能对你有所帮助!

    展开全文
  • Android Widget开发详解

    2011-08-31 11:47:53
    本文和大家重点学习一下Widget开发的概念,本例是为了实现一个手机Android平台的Widget开发,该Widget中的内容是根据输入账号从叽歪网站上获得得。当然,这个过程需要叽歪的API,得到信息后进行处理并显示出来。大体...
  • Android Widget开发模板

    2017-04-10 18:10:52
    Android上的Widget使用了Java语言开发比W3C的Widget运行效率提高了不少,可以做更多的事情调用系统的API,除了UI上的限制外,我们可以考虑帮助系统完善一些appWidgetAndroid123给出大家一个开发Widget的模板。...
  • android widget开发点滴

    2014-04-15 11:46:21
    Android Widget其实是mini版的apk程序,只是功能上进行了封装同时也受到了更多的约束。 以下是开发过程中碰到几点问题,记录一下: 一、关于EditText以及一些无法使用的组件问题 Widget是不允许放置EditView...
  • Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!) ..pdf
  • Android Widget开发案例

    2014-11-20 22:12:23
    下面是Demo的详细步骤: ...二、准备素材,一个是Widget的图标,一个是Widget的背景。存放目录如下图: 三、修改string.xml文件如下: [java] view plaincopyprint? <?xmlversion="1.0"encoding="utf-...
  • android widget 开发实例

    2012-08-25 17:00:57
    本文转载自 silenceburn 大师   桌面便签软件是android上常用软件的一种,比如比较早的Sticky Note,就曾非常流行...而实际上使用android平台对widget开发的支持,桌面便签类软件是非常易于开发的。 本文通
  • [color=red][size=x-large]该文章... ... 最近一直在研究Android Widget开发,工作也告一段落,现在停顿下来,整理一下思路,与大家共同分享经验,共同学习。 今天先说一下Android平台的Widget开发的前景以及潜力...
  • http://mobile.51cto.com/widget-213560.htm ...本文和大家重点学习一下AndroidWidget开发中如何构建Activity类,本例中的Activity类和普通的Activity极为相似,只是在触发函数中加载
  • 包括button,chronometer,clock,datetime, edit,gallery,grid,misc,popup,progress,spinner,video的实例源码
  • Android Widget开发浅谈

    千次阅读 2012-04-16 22:15:10
     Android widget 也称为桌面插件,其是android系统应用开发层面的一部分,但是又有特殊用途,而且会成为整个android系统的亮点。 2 创建一个Widget骨架 先让我们来看一下开发一个可以显示在桌面上的Widget...
  • 书接上文 android widget 开发实例 : 桌面便签程序的实现详解和源码 (上) 地址是:http://blog.csdn.net/silenceburn/archive/2010/12/23/6093074.aspx   在上半部分中,已经

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,064
精华内容 1,225
关键字:

androidwidget开发