android Widget-显示电量
16lz
2021-01-23
BatteyAppWidget.java
package widget.irdc;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.widget.RemoteViews;public class BatteyAppWidget extends AppWidgetProvider { public final static String TAG = "BatteyAppWidgetProvider"; public static BatteyAppWidget mInstance; public BatteyAppWidget getInstance() { if (mInstance == null) { mInstance = new BatteyAppWidget(); } return mInstance; } public void onUpdate(Context context, AppWidgetManager appwidgetmanager, int[] appwidgetIds) { Intent intent = new Intent(context, BatteyService.class); context.startService(intent); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); appwidgetmanager.updateAppWidget(appwidgetIds, views); } public void onDisabled(Context context) { super.onDisabled(context); Intent intent = new Intent(context, BatteyService.class); context.stopService(intent); } public static void notifyChange(Context context, int m) { ComponentName thiswidget = new ComponentName(context, BatteyAppWidget.class); AppWidgetManager appmanager = AppWidgetManager.getInstance(context); RemoteViews Views = new RemoteViews(context.getPackageName(), R.layout.main); Views.setTextViewText(R.id.tips, m + "%"); if (m > 0 && m <= 25) { Views.setInt(R.id.ll, "setBackgroundResource", R.drawable.i25); } if (m > 25 && m <= 50) { Views.setInt(R.id.ll, "setBackgroundResource", R.drawable.i50); } if (m > 50 && m <= 75) { Views.setInt(R.id.ll, "setBackgroundResource", R.drawable.i75); } if (m > 75 && m <= 100) { Views.setInt(R.id.ll, "setBackgroundResource", R.drawable.i100); } appmanager.updateAppWidget(thiswidget, Views); }}BatteyService.java
package widget.irdc;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;public class BatteyService extends Service { //必须使用广播来得到电量的值 public BroadcastReceiver battryreceiver=new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String action=intent.getAction(); if(action.equals(Intent.ACTION_BATTERY_CHANGED)) { int level=intent.getIntExtra("level",0); int scale=intent.getIntExtra("scale",100); int lenvel=level*100/scale; BatteyAppWidget.notifyChange(context,lenvel); } } }; @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } public void onStart(Intent intent,int startId) { IntentFilter mIntentFilter=new IntentFilter(); mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); registerReceiver(battryreceiver,mIntentFilter); } public void onDestroy() { unregisterReceiver(battryreceiver); super.onDestroy(); }}main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ll" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/i0" android:orientation="vertical" android:layout_gravity="center" ><TextView android:id="@+id/tips" android:text="Battery level:" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center" android:paddingTop="75px" android:paddingLeft="60px" android:textColor="@android:color/white"/></LinearLayout>battry_widget.xml
<?xml version="1.0" encoding="utf-8" ?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/main" android:updatePeriodMillis="120000" android:minHeight="50px" android:minWidth="50px" /> <!-- android:updatePeriodMillis="86400000" 为插件刷新的时间,单位为毫秒,86400000毫秒=24小时android:initialLayout="@layout/main" 为初始化的界面摆布情况android:minHeight="67dip" 为插件最小高度android:minWidth="122dip" 为插件最小宽度 -->
更多相关文章
- Android电源管理,低电量报警
- eclipse 插件网址
- Windows下Eclipse 安装 android maven插件教程
- android 插件化 与一个轻量级框架
- Android电池电量检测
- 【zz】安装Android的Eclipse插件ADT遇到错误“requires 'org.ecl
- Android Studio插件之Android Strings.xml To CSV Converter(失效
- 【Android 电量优化】电量优化 ( Battery Historian 环境要求 |
- Android Studio插件整理