`
lawrenst
  • 浏览: 47086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Widget开发系列(二)

阅读更多
本例是为了实现一个手机Android平台的Widget,该Widget中的内容是根据输入账号从叽歪网站上获得得。当然,这个过程需要叽歪的API,得到信息后进行处理并显示出来。大体流程就是这样。好了,进入第一步。

该叽歪账号是测试账号,用户名是“students”,密码是“111111” 请不要擅自更改。

2. 建立一个Widget
Android reference中有关于如何建立一个Widget的详细方法,这里简要说明一下,详情可以查看Android SDK中自带的reference。

要建立一个Widget,分为如下几个步骤:
(1) 创建一个类,让其继承类AppWidgetProvider,在AppWidgetProvider中有许多方法,例如onDelete(Context,int[]),onEnable(Context)等,但一般情况下我们只是覆写onUpdate(Context,AppWidgetManager,int[])方法。在该方法中,我们启动后台服务的类,一般是启动Thread类或者Android中的Service类。在该类中我们进行从服务器端获得数据并进行处理并在Widget中显示。

(2) 在你的AndroidMenifest.xml中添加一个receiver标签,让其指向你的AppWidgetProvider子类。内容如下:
<receiver android:name="JiwaiWidget"
android:label="@string/app_name"
android:icon="@drawable/jiwai">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
            android:resource="@xml/info" />
</receiver>
对上面的代码进行解释:
第一行指定该Widget的接收者是JiwaiWidget,即你建立的AppWidgetProvider子类;
第二行指定该Widget的标签名称,值为value目录下string.xml中的app_name值;
第三行指定该Widget的图标,值为drawable目录下jiwai图片;
第四行-第六行是采用Android文档中提供的;
第七行指定该Widget的描述者信息,该描述着中定义了Widget的相关信息,如该Widget的宽度、长度、自动更新的间隔时间等信息,该描述位于xml目录下的info.xml中。

(3) 编写你的Widget的provider文件信息(本例中是xml/info.xml)
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="200dp"
    android:minHeight="90dp"
    android:updatePeriodMillis="43200000"
    android:initialLayout="@layout/appwidget"
    android:configure="com.lawrenst.jiwai.JiwaiConfigure">
</appwidget-provider>
其中android:updatePeriodMillis是自动更新的时间间隔,android:initialLayout是Widget的界面描述文件。Android:configure是可选的,如果你的Widget需要在启动时先启动一个Activity,则需要设定该项为你的Activity。本例中,需要你的嘀咕帐号和密码,所以应先显示一个Activity,输入你的账号和密码,然后将得到的信息在你的Widget中显示。

(4) 在layout目录下编写appwidget.xml文件,配置你的Widget的界面信息:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/widget"
android:background="@drawable/title_a">
<LinearLayout android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:background="@drawable/title">
<TextView android:id="@+id/username_display"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#ffffff"
android:textSize="15px"
android:gravity="left|center_vertical"
android:paddingLeft="6px" />
</LinearLayout>

<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView android:id="@+id/text1"
android:layout_width="fill_parent"
android:textColor="#ffffff"
android:textSize="12px"
android:gravity="center_vertical|left"
android:paddingLeft="6px"
android:layout_height="30px">
</TextView>

<TextView android:id="@+id/text2"
android:textColor="#ffffff"
android:layout_height="30px"
android:gravity="center_vertical|left"
android:textSize="12px"
android:paddingLeft="6px"
android:layout_width="fill_parent">
</TextView>
</LinearLayout>
</LinearLayout>


该Widget中包括三个Textview,两个用来显示叽歪的信息,一个用来显示用户名,上述代码比较简单,故不做解释。

(5) 由于需要一个Acvivity对象用来输入账户信息,所以在layout目录下新建一个login.xml,作为Activity的配置文件:
<?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:layout_height="fill_parent"
    >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textColor="#ff8c00"
android:capitalize="characters"
android:textStyle="bold" />

<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/user"
android:textColor="#ff8cff"
android:capitalize="characters" />

<EditText android:id="@+id/username"
android:layout_width="200px"
android:layout_height="wrap_content" />

</LinearLayout>

<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/code"
android:textColor="#ff8cff"
android:capitalize="characters" />

<EditText android:id="@+id/password"
android:layout_width="200px"
android:layout_height="wrap_content"
android:password="true" />
</LinearLayout>

<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">

<Button
    android:id="@+id/submit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Submit"  
    />
</LinearLayout>
</LinearLayout>
有两个EditText用来输入用户名和密码,另外还有一个Button对象。

准备工作差不多了,下面就可以写代码了。
分享到:
评论

相关推荐

    android widget 开发实例源码

    在Android应用开发中,Widget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,无需实际打开应用...对于初学者和有经验的开发者来说,这些实例都是宝贵的参考资料,有助于深入理解和掌握Android Widget开发。

    安卓开发-android Widget小组件开发.zip.zip

    这个压缩包“安卓开发-android Widget小组件开发.zip”很可能是包含一系列教程、代码示例或文档,帮助开发者学习如何创建自定义的Android Widget。 Widget主要分为两种类型:AppWidget和Shortcut。AppWidget是可以...

    android app widget demo

    一个Android App Widget由一系列组件构成,如ImageView、TextView、Button等,通过XML布局文件进行定义。例如,你可以创建一个显示天气信息的小部件,包含当前温度、天气图标和日期。在AndroidManifest.xml中声明...

    第二版【eoeAndroid特刊】第四期:Android widget

    这部分内容基于实践经验,提出了一系列关于Widget开发的最佳实践和建议: - **性能优化**:如何减少Widget的内存消耗,提高加载速度。 - **用户交互**:如何设计更加友好的用户界面和交互方式。 - **安全性考虑...

    android AppWidget ListView

    在Android开发中,AppWidget是桌面小部件,它允许开发者将应用程序的功能直接集成到用户的主屏幕上,无需打开应用。在本案例中,我们探讨的是如何在AppWidget中使用ListView,这是一个增强用户交互的方式,使小部件...

    eoeAndroid特刊04_Android widget

    ### Android Widget 开发详解 #### 一、引言 随着移动互联网的发展,Android系统作为全球最受欢迎的...以上内容基于给定的文档信息进行了详细的知识点提炼和扩展,旨在为Android开发者提供一个全面的Widget开发指南。

    Pro Android学习:widget小例子

    本教程基于“Pro Android学习”系列,重点讲解如何创建一个简单的Home Screen Widget。我们将参考提供的链接:http://blog.csdn.net/flowingflying/article/details/6212512,该链接可能包含更详细的步骤和源代码...

    基于Java实现的Android Widget使用技巧设计源码

    该项目为基于Java开发的Android Widget设计源码集,总计包含137个文件,其中XML配置文件67个,Java源文件48个,PNG图片文件7个,...项目汇集了一系列Android Widget的使用技巧,旨在帮助开发者提升Widget开发效率。

    Android 中文 API——android.widget合集(中)(50篇)(pdf格式)

    根据给定的文件信息,我们可以总结出以下有关Android开发中的重要知识点,特别是聚焦于`android.widget`命名空间下的组件及API使用。 ### Android中文API合集背景 Android中文API合集是由一群热心的开发者组成的...

    老罗android开发视频教程第二季

    根据提供的文件信息,“老罗Android开发视频教程第二季”这一资源包含了有关Android应用开发的一系列教学视频及配套代码。为了更好地理解和学习这部分内容,我们可以从中提取出以下关键知识点: ### Android开发...

    Android widget(2-1)

    要开始开发一个 Android 小部件,首先需要在 AndroidManifest.xml 文件中声明一个 `&lt;appwidget-provider&gt;`。这一步骤是必须的,因为它告诉 Android 系统你的应用程序提供了可被用户添加到主屏幕的小部件。 ```xml ...

    Android 手机编程实例源码:Widget 源代码

    这个“Android手机编程实例源码:Widget源代码”压缩包包含了一系列关于Android Widget开发的实践示例,对于学习和理解如何创建自定义Widget具有极高的价值。 首先,Android Widget主要由AppWidgetProvider、布局...

    android开发资料大全

    Android游戏开发系列源码+CHM+书籍截图+目录】 Android developer guide中文翻译文档 Android开发开发技巧之 EditText 属性、 ProgressBar 各种样式大全 android用户界面之EditText教程实例汇 android用户界面之...

    Pro Android学习:list widget小例子

    本篇文章将深入探讨“Pro Android学习”系列中的List Widget2小例子,通过源代码分析,帮助开发者理解如何在实际应用中有效利用List Widget。 首先,List Widget主要由两部分构成:Adapter和ListView。Adapter是...

    android widget samples

    在"android widget samples"这个压缩包中,你很可能会找到一系列用于展示如何设计和实现Android小部件的示例代码。 Android小部件基于AppWidgetProvider类,它是BroadcastReceiver的子类,负责处理小部件的更新和...

    Android应用开发入门教程(经典版).pdf

    #### 二、Android SDK的开发环境 ##### 2.1 Android SDK的结构 - **Android SDK** 包含了一系列的工具,用于帮助开发者构建、测试和调试Android应用程序。 - **Android SDK Manager**: 管理SDK的各种组件。 - **...

    Android源码——天气预报加widget源码.7z

    总的来说,这个项目提供了一个学习Android Widget开发和天气预报集成的实例,涵盖了网络请求、数据解析、UI设计等多个关键知识点。通过分析和研究这个源码,开发者可以提升自己的Android应用开发技能,尤其是关于...

    新版Android开发教程.rar

    Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...

Global site tag (gtag.js) - Google Analytics