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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android好用的桌面小工具,Android桌面小工具Widget功能实现

發布時間:2023/12/18 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android好用的桌面小工具,Android桌面小工具Widget功能实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記錄一下Android桌面小工具的實現方式

1.注冊

首先需要在AndroidManifest.xml中進行注冊,類似Activity、Service的注冊方式:

android:name="android.appwidget.provider"

android:resource="${APP_WIDGET}" />

2.繼承AppWidgetProvider實現

public class MonitorWidgetProvider extends AppWidgetProvider{

public MonitorWidgetProvider() {

super();

}

@Override

public void onReceive(Context context, Intent intent) {

super.onReceive(context, intent);

}

@Override

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

super.onUpdate(context, appWidgetManager, appWidgetIds);

}

@Override

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

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

}

@Override

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

super.onDeleted(context, appWidgetIds);

}

@Override

public void onEnabled(Context context) {

super.onEnabled(context);

}

@Override

public void onDisabled(Context context) {

super.onDisabled(context);

}

@Override

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

super.onRestored(context, oldWidgetIds, newWidgetIds);

}

}

從這些可以覆蓋的方法名稱就可以知道其調用的位置

3.配置文件

注意這里的${APP_WIDGET}是對應的配置文件,我們需要在res/xml中創建:

<?xml version="1.0" encoding="utf-8"?>

android:initialLayout="@layout/view_monitor_sense"

android:previewImage="@mipmap/ic_launcher_sense"

android:minWidth="320dp"

android:minHeight="110dp"

android:updatePeriodMillis="60000"

android:resizeMode="horizontal|vertical"

android:minResizeWidth="250dp"

android:minResizeHeight="40dp">

解釋一下這些參數的意思:

android:initialLayout:對應的布局;

android:previewImage:桌面插件管理界面顯示的icon;

android:minWidth:最小寬度,這個寬度計算為:70*n-30,n代表的時在桌面上占用n個格子;

android:minHeight:最小高度,同上;

android:minResizeWidth:最小可調節寬度,結合上方的最小寬度實現后結果即,插件第一次拖拽到桌面時候占用五個格子,長按調節寬度,最小可調節到四個格子寬;

android:minResizeHeight:最小可調節高度,同上;

android:resizeMode:可調節方向,回調方法為onAppWidgetOptionsChanged(...);

android:updatePeriodMillis:給定間隔更新,單位毫秒,回調方法為onUpdate(...);

4.主動更新Widget

我們在注冊的時候就添加了action:

類似于發送靜態廣播,如下操作就可以主動更新Widget:

Intent intent = new Intent(MonitorWidgetProvider.APP_WIDGET_REFRESH);

sendBroadcast(intent);

注意,主動更新Widget中回調的方法為onReceive;

5.RemoteViews獲取布局元素

在Widget中需要使用RemoteViews類來操作布局元素,這里和Notication中元素的操作類似:

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

基本的元素操作就不再贅述,記錄一下如何跳轉到對應App指定界面事件:

Intent intent = new Intent(MyApplication.getInstance(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(MyApplication.getInstance(), 0, intent,

PendingIntent.FLAG_UPDATE_CURRENT);

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

以上就是實現一個Widget需要記錄的了,ok~

總結

以上是生活随笔為你收集整理的Android好用的桌面小工具,Android桌面小工具Widget功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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