日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android桌面部件开发教程,Android桌面小部件AppWidget开发

發布時間:2023/12/31 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android桌面部件开发教程,Android桌面小部件AppWidget开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android桌面小部件AppWidget開發

在Android我們經??梢钥吹礁鞣N桌面小部件,比如時鐘、天氣、音樂播放器等等。我們可以使用AppWidgetProvider來實現小部件的開發。

AppWidgetProvider是Android中提供的用于實現桌面小工具的類,其本質是一個廣播,即BroadcastReceiver。

開發一個桌面小部件的步驟:

一、自定義小部件界面

在res/layout/下新建一個布局文件,名稱和內容自定義,看你想把小工具做成什么樣。需要注意的是系統默認的小工具布局中只支持以下這些標簽,如果用了列表以外的標簽,會導致小工具加載錯誤:

FrameLayout、LinearLayout、RelativeLayout

TextClock、Button、Chronometer、ImageButton、ImageView、ProgressBar、TextView

比如,我們創建了一個名為widget_layout.xml的布局文件:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical">

android:id="@+id/doge_imageView"

android:layout_width="110dp"

android:layout_height="110dp"

android:src="@drawable/doge" />

二、定義小部件配置信息

定義小部件的配置信息需要在res目錄下新建一個xml目錄,然后在res/xml/目錄下創建一個配置文件,配置文件名稱隨意。新建app_widget_provider_info.xml:

android:initialLayout="@layout/widget_layout"

android:minHeight="110dp"

android:minWidth="110dp"

android:previewImage="@drawable/doge"

android:updatePeriodMillis="864000" />

上面的參數意義很明確,initialLayout指小部件的初始化布局,一般與最終布局相同;minHeight和minWidth定義了小部件的最小寬高,與小部件所占網格大小有關;previewImage可以指定在添加小部件時看到的預覽圖;updatePeriodMillis指定了小部件的自動更新周期,單位為毫秒。

小部件最小寬高選取.png

三、定義小部件類,繼承自AppWidgetProvider

import android.app.PendingIntent;

import android.appwidget.AppWidgetManager;

import android.appwidget.AppWidgetProvider;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.widget.RemoteViews;

import android.widget.Toast;

/**

* @author zhengxuze

* @date 2017/1/10 create

*/

public class TestWidgetProvider extends AppWidgetProvider {

public static final String CLICK_ACTION = "com.seewo.appwidgettest.action.CLICK"; // 點擊事件的廣播ACTION

/**

* 每次窗口小部件被更新都調用一次該方法

*/

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

super.onUpdate(context, appWidgetManager, appWidgetIds);

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

Intent intent = new Intent(CLICK_ACTION);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, R.id.doge_imageView, intent, PendingIntent.FLAG_UPDATE_CURRENT);

remoteViews.setOnClickPendingIntent(R.id.doge_imageView, pendingIntent);

for (int appWidgetId : appWidgetIds) {

appWidgetManager.updateAppWidget(appWidgetId, remoteViews);

}

}

/**

* 接收窗口小部件點擊時發送的廣播

*/

@Override

public void onReceive(Context context, Intent intent) {

super.onReceive(context, intent);

if (CLICK_ACTION.equals(intent.getAction())) {

Toast.makeText(context, "hello dog!", Toast.LENGTH_SHORT).show();

}

}

/**

* 每刪除一次窗口小部件就調用一次

*/

@Override

public void onDeleted(Context context, int[] appWidgetIds) {

super.onDeleted(context, appWidgetIds);

}

/**

* 當最后一個該窗口小部件刪除時調用該方法

*/

@Override

public void onDisabled(Context context) {

super.onDisabled(context);

}

/**

* 當該窗口小部件第一次添加到桌面時調用該方法

*/

@Override

public void onEnabled(Context context) {

super.onEnabled(context);

}

/**

* 當小部件大小改變時

*/

@Override

public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {

super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);

}

/**

* 當小部件從備份恢復時調用該方法

*/

@Override

public void onRestored(Context context, int[] oldWidgetIds, int[] newWidgetIds) {

super.onRestored(context, oldWidgetIds, newWidgetIds);

}

}

四、在AndroidManifest.xml中聲明小部件

android:name="android.appwidget.provider"

android:resource="@xml/app_widget_provider_info" />

OK,小部件完成了,運行一下看看效果:

總結

以上是生活随笔為你收集整理的android桌面部件开发教程,Android桌面小部件AppWidget开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线电影一区二区三区 | 午夜片在线观看 | 亚洲成肉网 | 风间由美av| av黄色小说 | 午夜黄色小视频 | 婷婷成人综合 | 天天插综合| 欧美在线观看www | 精品福利三区3d卡通动漫 | 国产区免费观看 | 枫可怜av| 91插插插永久免费 | 一区二区三区入口 | 久久久久久久久久久久Av | 男人天堂2020 | 青青草国产成人av片免费 | 日本不卡一区二区三区在线观看 | 亚洲视频在线免费看 | 国产精品久免费的黄网站 | 精品无码人妻少妇久久久久久 | 男生和女生一起搞鸡 | 亚洲天码中字 | 一卡二卡在线 | 波多野结衣影片 | 欧美精品videos另类 | 黄色大片a级 | 国产精品一区二三区 | xxxx日本少妇 | 国产福利视频在线观看 | 超级碰在线视频 | 亚洲av片不卡无码久久 | 欧美精品xxx | 亚洲精品99久久久久中文字幕 | 久久久久久一区 | 苍井空亚洲精品aa片在线播放 | 自拍啪啪| 久久亚洲精品小早川怜子 | 久久裸体视频 | 欧美亚洲国产日韩 | 国产精品无码网站 | 三级福利视频 | www.亚洲激情 | 日韩精品播放 | 国产一二三级 | 国产精品一二三四五区 | 麻豆av网站 | 欧美生活一级片 | 色中文网 | 国产v在线 | 91在线视频免费看 | 亚洲av无码一区二区二三区软件 | 久久精品久久精品 | 国内精品视频一区二区三区 | 天天色天| 色偷偷免费 | 在线看一区 | 欧美 在线 | 国产在线播放一区二区 | 日韩精品极品视频 | 成人αv| 深夜视频在线免费 | 制服丝袜亚洲色图 | 黄色综合网站 | 免费网站看av | 在线色网| 日韩a毛片 | 不卡av一区二区 | 久久精品国产99 | 黄色大片免费的 | 久久影院中文字幕 | 日本在线高清 | 仙踪林av | 免费国产 | 夜色一区二区三区 | 亚洲一级黄色片 | 久久久久久久久成人 | av网天堂| 国产黄色美女视频 | 中国黄色a级片 | 久久精品高清 | 久久最新网址 | 91麻豆映画传媒 | 日韩精品视频播放 | 国产精品区一区二区三 | 亚洲成a人片777777久久 | 2021av| 欧美在线三区 | 中文无码熟妇人妻av在线 | 精品乱子伦一区二区三区 | 沈樵精品国产成av片 | 韩国午夜影院 | 国产成人精品一区二区三区 | 国产一区二区三区高清 | 亚洲 小说区 图片区 都市 | 丰满大乳露双乳呻吟 | 超碰人体| 好吊色网站 | 涩涩视频免费在线观看 |