`

Android Widget开发模板

阅读更多
Android上的Widget使用了Java语言开发比W3C的Widget运行效率提高了不少,可以做更多的事情调用系统的API,除了UI上的限制外,我们可以考虑帮助系统完善一些appWidget,Android123给出大家一个开发Widget的模板。

public class cwjWidget extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
                context.startService(new Intent(context, UpdateService.class)); //这里创建一个服务,防止出现等待超时对话框
    }

    public static class UpdateService extends Service {  //这个内部的服务我们推荐新开一个线程操作一些容易阻塞的情况,比如网络下载等等
        @Override
        public void onStart(Intent intent, int startId) {

            RemoteViews updateViews = buildUpdate(this);

            ComponentName thisWidget = new ComponentName(this, cwjWidget.class);
            AppWidgetManager manager = AppWidgetManager.getInstance(this);
            manager.updateAppWidget(thisWidget, updateViews);
        }

        public RemoteViews buildUpdate(Context context) {
             Resources res = context.getResources();
            RemoteViews updateViews = new RemoteViews(
                context.getPackageName(), R.layout.main);  //主Widget的layout布局

            PendingIntent pendingIntent = PendingIntent.getActivity(context,
                    0 /* no requestCode */, 
                    new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS),
                    0 /* no flags */);
            updateViews.setOnClickPendingIntent(R.id.ui, pendingIntent); //单击view打开intent,目标为系统信息,就是上面的action位置

            updateViews.setTextViewText(R.id.info,    
                android.os.Build.VERSION.CODENAME + " " +
                android.os.Build.ID);   //这里是API的获取系统版本的方法

            updateViews.setTextViewText(R.id.changelist,
                android.os.Build.FINGERPRINT
                );
            return updateViews;
        }

        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    }
}


有关涉及到的 androidmanifest.xml内容

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android123.widget"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk android:minSdkVersion="3" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <receiver android:name=".BuildWidget" android:label="android123_cwj">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
        </receiver>
        <service android:name=".cwjWidget$UpdateService" />
    </application>
    
</manifest>


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

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

  有关 main.xml的内容为

<?xml version="1.0" encoding="utf-8"?>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ui"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="6dip"
    >

    <TextView
        android:id="@+id/info"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:textSize="18dip"
        />

    <TextView
        android:id="@+id/changelist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:layout_marginTop="4dip"
        android:textSize="9dip"
        />

</LinearLayout>
分享到:
评论

相关推荐

    Android Widget

    通过Android Studio提供的模板和工具,可以简化开发流程。 Android Widget的引入极大地丰富了Android系统的可玩性和实用性,使得开发者能够为用户创造更多元化的服务。从日程管理到音乐播放,从天气查询到社交网络...

    android widget GRRS/3G(APN)上网开关

    创建这样的小部件,我们首先需要在Android Studio中创建一个新的Android项目,选择“App Widget”模板。接着,我们需要在`res/layout`目录下设计小部件的布局。布局可以是一个简单的按钮,用以触发数据连接的开启或...

    Android-Widget-Event-Handling

    标题“Android-Widget-Event-Handling”意味着本主题将探讨Android开发中如何处理各种Widget的事件。Widget在Android中通常指的是在用户界面(UI)上提供给用户操作的组件,例如按钮(Button)、单选按钮(RadioButton...

    Android2.2 widget小程序

    《Android2.2小部件(Widget)开发详解》 Android平台的小部件(Widget)是其桌面环境中的一个重要组成部分,允许用户在主屏幕上放置各种应用程序的功能快捷方式或动态展示信息。本教程将深入探讨如何在Android 2.2...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    android桌面小部件开发

    在Android系统中,桌面小部件(AppWidget)是一种可以放置在用户主屏幕上的小型应用程序,它们为用户提供了一种快捷方式来交互和获取信息,而无需打开完整的应用。本项目是针对初学者设计的一个入门级教程,旨在帮助...

    Android之AppWidget(桌面小部件)开发浅析

    总的来说,Android的AppWidget开发需要理解广播接收器的工作机制,以及如何利用RemoteViews来构建和更新小部件的界面。通过熟练掌握这些技术,开发者可以为用户提供更加直观和便捷的交互体验,增强应用的实用性与...

    前端项目-github-repo-widget.zip

    【标题】前端项目-github-repo-widget.zip是一个包含前端开发资源的压缩包,主要用于创建一个GitHub仓库的小部件,该小部件使用jQuery库来展示GitHub仓库的相关信息。这个小部件能够帮助用户在自己的网站上轻松地...

    基于android studio开发的videoview应用设计

    VideoView位于`&lt;androidx.core.widget.VideoView&gt;`标签下,我们可以将其放置在布局的任何位置。VideoView通常与MediaController一起使用,提供播放、暂停、快进、快退等控制功能。在XML布局文件中,可以通过`android...

    Android Studio轻松构建自定义模板的步骤记录

    为了提高开发效率,Android Studio支持自定义模板功能,通过预先定义好代码结构,一键生成常用代码块。本文将详细介绍如何使用TemplateBuilder插件在Android Studio 3.1.1中轻松构建自定义模板。 ### 一、...

    Android手机APP编程开发

    2. 创建一个新的 Android 项目,包括选择项目模板、设置项目结构等。 3. 设计和实现用户界面,包括使用 Layout、Widget、Adapter 等控件。 4. 实现业务逻辑,包括使用 Java 语言编写业务逻辑代码。 5. 测试和调试...

    安卓开发-Android 主流的图片浏览的全屏缩放效果SmoothImageDemo软件源码

    安卓开发-Android 主流的图片浏览的全屏缩放效果SmoothImageDemo软件源码: import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content....

    Android 学习资料.

    7. 《Android 学习资料》:这个文件名可能指的是整个压缩包,或者包含额外的学习资源,如代码示例、项目模板、学习路径指导等,旨在帮助学习者系统地学习Android开发。 通过这些特刊,读者可以逐步构建Android开发...

    android桌面应用程序

    1. 创建项目:创建一个新的 Android 项目,选择桌面应用程序模板。 2. 设计用户界面:使用 XML 布局来描述用户界面。 3. 实现业务逻辑:使用 Java 语言来实现业务逻辑,包括桌面图标管理、快捷方式管理、Widget 管理...

    xamarin android 自定义文本框(登录界面的设计)

    在Xamarin.Android开发中,自定义控件是一个重要的实践,它可以增强应用的用户体验并实现独特的设计。本篇文章将深入探讨如何使用Xamarin Android来创建一个自定义的文本框,特别针对登录界面的需求进行设计。 首先...

    android天气控件

    - 在Android Studio项目中,创建一个新的Android Widget,选择`App Widget`模板。 - 定义`AppWidgetProviderInfo`元数据,这将描述Widget的外观和行为,如最小尺寸、更新频率等。在`AndroidManifest.xml`中注册你...

    Xamarin Android Navigation Drawer Layout简单例子

    在Android应用开发中,Xamarin是一个非常流行的跨平台框架,它允许开发者使用C#语言来构建原生的iOS、Android和Windows应用。本教程将详细讲解如何在Xamarin Android项目中实现一个基本的Navigation Drawer Layout,...

    Android按钮样式

    在Android开发中,按钮(Button)是用户界面中不可或缺的元素,它允许用户进行交互,如点击触发某个操作。Android提供了多种方式来定制按钮样式,以满足不同设计需求。本篇将深入探讨如何在Android中创建和自定义...

    Google Android SDK开发范例大全.docx

    ### Google Android SDK 开发范例知识点汇总 #### 第1章:了解、深入、动手做 - **1.1 红透半边天的Android** 本节概述了Android操作系统的历史及其市场地位,强调了它在全球智能手机市场的主导地位。Android...

Global site tag (gtag.js) - Google Analytics