android 显示电量的widget

Android显示电量的小控件 Android做一个显示电量的小控件,简洁大方,方便使用。 立即下载

这个显示电量的widget很多应用中都附带的有这个功能,但我自己手机上就只想要这个功能,网上找了半天,全都是那种一个庞大的应用中带了这么个小功能,但是那些功能我又不需要(算有点强迫症吧。。),于是一怒之下,干脆自己写个。。。


这个东西写其实也很简单,网上的例子也有很多了,无非就是启动个后台service去监听电量变化然后显示到widget上,先来张效果图



我这里面还多加了个监听充放电的状态变化(左边那个图标会改变),另外这个工程里面是没有活动的activity,安装之后点一下应用程序图标就会直接弹出来,然后在桌面的添加widget中找到有个叫PowerWidget的小工具拿出来用即可


下面直接把代码贴出来了,3个class,最下面有项目工程包的下载地址


PowerWidgetActivity.java

public class PowerWidgetActivity extends Activity {

    public static final String TAG = "PowerWidget";
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        overridePendingTransition(0, 0);
        Log.i(TAG, " on WidgetConf ... ");
        setResult(RESULT_CANCELED);

        // Find the widget id from the intent.
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        int mAppWidgetId = 0;
        if (extras != null) {
            mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
        }

        // If they gave us an intent without the widget id, just bail.
        if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
            finish();
        }

        // return OK
        Intent resultValue = new Intent();
        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);

        setResult(RESULT_OK, resultValue);
        finish();
        
    }
    
    
}


BatteyService.java

package com.fly.power_widget;

import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
import android.os.BatteryManager;
import android.os.IBinder;
import android.util.Log;
import android.widget.ImageView;
import android.widget.RemoteViews;
import android.widget.TextView;

public class BatteyService extends Service {

    public static final String TAG = "PowerWidget";

    public BroadcastReceiver battryReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Log.d(TAG, "intent->" + intent);
            Log.d(TAG, "action->" + action);
            ComponentName thiswidget = new ComponentName(context, PowerWidget.class);
            AppWidgetManager appmanager = AppWidgetManager.getInstance(context);
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.clock_widget);
            if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
                int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
                int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
                int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, 0);
                Log.e(TAG, BatteryManager.EXTRA_LEVEL + "->" + level);
                Log.e(TAG, BatteryManager.EXTRA_SCALE + "->" + scale);
                Log.e(TAG, BatteryManager.EXTRA_STATUS + "->" + status);
                views.setTextViewText(R.id.power_percent, "电量:");
                //views.setFloat(R.id.power_percent, "setTextSize", 20);
                //views.setTextColor(R.id.power_percent, 0xffff0000);
                views.setInt(R.id.power_percent_image, "setImageResource", R.drawable.stat_sys_battery_000+level);
            } else if (Intent.ACTION_POWER_CONNECTED.equals(action)) {
                views.setInt(R.id.power_image, "setImageResource", R.drawable.charging);
            } else if (Intent.ACTION_POWER_DISCONNECTED.equals(action)) {
                views.setInt(R.id.power_image, "setImageResource", R.drawable.uncharge);
            }
            appmanager.updateAppWidget(thiswidget, views);
        }
    };

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

    public void onStart(Intent intent, int startId) {
        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_BATTERY_CHANGED);
        filter.addAction(Intent.ACTION_POWER_CONNECTED);
        filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
        registerReceiver(battryReceiver, filter);
    }

    public void onDestroy() {
        unregisterReceiver(battryReceiver);
        super.onDestroy();
    }
}

PowerWidget.java

package com.fly.power_widget;

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

public class PowerWidget extends AppWidgetProvider {

    public static final String TAG = "PowerWidget";

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        Log.i(TAG, "onReceive!  receive intent ---> " + intent.getAction());
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Intent intent = new Intent(context, BatteyService.class);
        context.startService(intent);
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        Intent intent = new Intent(context, BatteyService.class);
        context.stopService(intent);
    }

    @Override
    public void onEnabled(Context context) {
        Log.i(TAG, "onEnabled!");
    }

    @Override
    public void onDisabled(Context context) {
        Log.i(TAG, "onDisabled!");
    }

}


项目工程包的下载地址:http://download.youkuaiyun.com/detail/chuekup/5210198

桌面电量显示软件 一款很好用的桌面电量指示软件,不占内存,不占CPU,体积小。 立即下载

相关推荐

Android做一个显示电量的小控件

Android做一个显示电量的小控件

Android 电量显示Widgets插件实现

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34005042的博客 266

Android自定义电量控件百分比控制

1.自定义电量控件,实现百分比控制,但不支持数字显示 2.提供自定义控件大小和颜色,适用于各个场合 3.经过绘制优化,不存在过度绘制问题,可以放心使用

android 电量控件,Android电量显示控件

import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import and...

weixin_34065550的博客 729

Android实现显示电量的控件代码

本文介绍了Android实现显示电量的控件代码,主要功能就是可以显示电量,有需要的朋友可以来了解一下。

在Keil下完成一个汇编程序的编写

在学习STM32的路上开始是学的C语言尚未进行对汇编进行学习,因此抽出时间来学习一下在keil下的汇编语言。

Liu-FE的博客 1万+

androidの桌面小控件(1)—电池状态显示

androidの桌面小控件—电池状态显示 1 . 桌面控件介绍 本案例安装完成后不会有应用程序的提示,而是在手机的小工具中可以看到该插件,当单击本插件拖动到桌面后即可显示效果。  所谓桌面小控件,就是能之间显示在Android系统桌面的小程序。 桌面小控件的实现是基于Broadcast的形式实现的,因此,每一个桌面小控件都对应于一个BroadcastReceiver类。Androi

Steampy专栏 4044

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

使用Qt画一个电池

首先添加一个新文件,选择C++类,继承QWidget,名字为TBattery,记得选上Q_OBJECT,这样我们就得到一个头文件一个cpp文件了。具体而言,电池其实是一个QWidget,还有一个horizontalSlider,一个label,ui界面很简单。其实可以直接在主界面里写函数来画电池,不过这个电池之后还有用,所以选择把电池位置的QWidget进行提升。具体坐标都是事先算好的,左上角是(0,0),整个电池框长度是110,这样可以直接用电量值来画电量的图。随后,重写paintEvent。

ouliten的博客 790

Deep Reinforcement Learning - 1. DDPG原理和算法

Deep Reinforcement Learning - 1. DDPG原理和算法 背景描述 DDPG的定义和应用场景 DDPG算法相关基本概念定义 DDPG实现框架和算法 DDPG对于DPG的关键改进 下一篇 以下用RL作为Reinforcement Learning 的简称。背景描述概括来说,RL要解决的问

kenneth_yu的博客 14万+

Zemax API 与 Python 的独立应用程序

Zemax 提供了多个 python 示例代码,位于 Documents\Zemax\ZOS-API Sample Code\Python。使用以下代码,它们保存在 ZOS 文件目录中:/Documents\Zemax\Samples\API\Python。此代码块定位已安装的 OpticStudio 版本,确定根目录,创建命名空间和类,加载局部变量。如果定义的镜头需要一些特殊的编辑,例如反转,一种快速方法是从位于编程选项卡的 ZOS-API 语法帮助中找到相应的命令。重新运行整个代码块,镜头方向会改变。

jkh920184196的博客 1978

Android Widget 电池插件的开发实现 .

最近突发奇想,想自己编一个Android电池插件放在桌面上,一是这个App确实有它的实用价值,二是编起来工程量应该不是很大,不用花太长时间,三来又能学习下Widget的开发方法,一举三得,于是,暂停下游戏开发的学习,来编一个widget先。     在查找并结合多方资料后终于实现,效果图如下: 长按桌面空白处,出现菜单,点击Widgets,此时的插件已经装入:   在电源连接时,机

wanghao_happy的专栏 1379

AI测试干货:让大语言模型稳定输出 JSON 的四种实现方案

用大语言模型做测试用例生成、数据提取时,最头疼的就是让它老老实实返回 JSON。你以为它会给你 `{"name":"张三"}`,结果它来一句"好的,这是生成结果:```json...",或者干脆在 JSON 里加注释,直接把你的 `json.loads()` 干崩溃。 模型本质上是个话痨,天生爱解释。但我们要的是结构化数据,不是聊天记录。我整理了四种实战方案,从最简单的提示词技巧到工程化框架,覆盖了从快速验证到生产环境的各种场景。

blues_C的博客 957

android Widget-显示电量

BatteyAppWidget.java package widget.irdc; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.conte...

zzpaymcs的专栏 281

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

9794

深度学习中常用的几种卷积(下篇):膨胀卷积、可分离卷积(深度可分离、空间可分离)、分组卷积(附Pytorch测试代码)

膨胀卷积也称为扩张卷积或空洞卷积,一般可通过对标准二维卷积的卷积核设置合适的膨胀率(具体地指卷积核元素之间的距离)实现。合理利用膨胀卷积可在不引入其他参数的同时,扩大输出中元素的感受野,提高特征的全局表示能力。下面通过展示几个不同膨胀率下的卷积核大小以及感受野变化情况,可以更直观的理解:图中灰色为输入,蓝色为卷积核,黄色为输出。1)dilation=1:表示卷积核元素之间距离为1,使用0进行大小为dilation-1=0的填充(这是默认情况),因此。

NorthSmile的博客 9015

Android Widget 电池插件的开发实现

最近突发奇想,想自己编一个Android电池插件放在桌面上,一是这个App确实有它的实用价值,二是编起来工程量应该不是很大,不用花太长时间,三来又能学习下Widget的开发方法,一举三得,于是,暂停下游戏开发的学习,来编一个widget先。 在查找并结合多方资料后终于实现,效果图如下: 长按桌面空白处,出现菜单,点击Widgets,此时的插件已经装入: 在电源连接时,机器人周围会

1308

全球建筑物提取数据集(免费下载):微软/GlobalMLBuildingFootprints

这个是GitHub上的开源数据集: https://github.com/microsoft/GlobalMLBuildingFootprints 介绍 必应地图正在世界各地发布开放式建筑足迹。我们从 2014 年到 2021 年间的 Bing Maps 图像中检测到了 7.77 亿座建筑物,包括 Maxar 和 Airbus 的图像。数据可在 ODbL 下免费下载和使用。该数据集补充了我们的其他版本。 包括的地区 执照 此数据由 Microsoft 根据Open Dat..

此星光明博客 6290

Android Widget 电池插件的开发实现 带源码

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34038652的博客 175

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

安卓电量Widget

按照坛友的教程改了一下。教程:http://billhoo.blog.51cto.com/2337751/762776AppWidget系统框架:http://blog.youkuaiyun.com/thl789/article/details/7879257WidgetUpdateService.javapackage com.hy.study;import android.app.S...

weixin_34162228的博客 111

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android 电池电量监控初步

整体思路概览 ①由于要显示电池图标,因此需要一组对应的小icon,程序算出当前电量之后,就在状态栏上显示对应的icon即可。本程序用到的icon已经提供在附件,下载后将里面的icons直接复制到res\drawable-hdpi中即可。 ②由于电池更新是一个长期存在的过程,因此需要将我们的程序注册为系统服务,以便长期生存于Android系统中。 ③服务不会自行启动,因此我们需要为自己的服务创

moyunfei1987的专栏 1233

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android天气工具,Rainy Drop Weather Widget app

Rainy Drop Weather Widget app是一款比较不错的手机天气预报查询工具多雨滴天气小工具,支持时钟小部件自定义选择,快捷桌面,小桌面工具,天气小部件选择,非常个性,查看未来天气和实时天气查询功能,需要的可以下载Rainy Drop Weather Widget app使用!软件简介安卓的最佳时钟和天气小部件在这里等您!此小部件是功能全面,可完全自定义的数字时钟和天气预报小部件...

weixin_39617473的博客 425

【Android电池电量监控初步】

引言 初学Andorid,学习了包括Activity、Service、AppWidget、Broadcast、Intent、Notification、XML布局、XML配置等基础知识之后,尝试着做一个小玩意儿——电池监控,期间也是阻挠多多,现在基本完成了,所以把自己的经验分享给大家,希望能通过我的文章让还不会的朋友少走弯路,也算是这个小玩意儿的一点...

weixin_34380781的博客 200

Android-Battery-Widget 项目推荐

Android-Battery-Widget 是一个开源的 Android 应用程序项目,主要用于在 Android 设备上显示电池状态的小部件。该项目的主要编程语言是 Java。通过使用 Java 语言,开发者可以轻松地实现电池状态的实时监控和显示,为用户提供便捷的电池信息查看功能。 ## 项目的核心功能 Android-Battery-Widget 的核心功能是提供一个优雅的电池小部件,用...

gitblog_01270的博客 452
上一篇: android:descendantFocusability用法简析
下一篇: android String 资源 你所不知道的
Chuekup
博客等级 码龄15年 17粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值