`
zzpaym
  • 浏览: 6612 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

android Widget-显示电量

阅读更多

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"  为插件最小宽度 -->
 

 

  • 大小: 22.2 KB
分享到:
评论

相关推荐

    Android代码-电量显示Widgets插件源码.zip

    "电量显示Widgets插件源码.zip"显然包含了创建一个用于显示设备电量信息的Android小部件的源代码。接下来,我们将深入探讨这个主题,了解如何开发此类Widgets以及相关的Android开发知识。 首先,让我们了解一下...

    android 显示电量widget

    在Android平台上,开发一个显示电量的小部件(Widget)是一项常见的任务,这可以帮助用户直观地查看设备的当前电量状态,无需解锁手机。这个"android 显示电量widget"项目就是这样一个实用工具,它允许用户将电量...

    Android_Widget开发实例-电量监控

    在Android平台上,Widget是应用程序的一种轻量级表现形式,它可以在用户的主屏幕上显示实时信息,如天气、新闻、电量等。本示例介绍了一个简单的电量监控Widget——"Android_Widget开发实例-电量监控",该实例重点...

    Android 电量显示Widgets插件源码.rar

    电量显示Widget需要开发者对Android的Widget API有深入的理解,包括`AppWidgetProvider`、`RemoteViews`和`BroadcastReceiver`等类的使用。 1. **AppWidgetProvider**: 这是Android Widget的核心组件,继承自`...

    Android代码-一个电池widget

    在`res/layout`目录下,会有个如`battery_widget.xml`的文件,其中包含了一个ImageView和TextView,分别用于显示电池图标和电量百分比。布局文件中的元素可以使用`RemoteViews`类来动态地更新,`RemoteViews`允许...

    Android代码-天气预报加widget源码.zip

    在Android平台上,开发一个天气预报应用并集成Widget是一项常见的任务,它涉及到多个技术层面,包括网络请求、数据解析、UI设计以及Widget的实现。这里我们将深入探讨这些关键知识点。 首先,"天气预报"通常需要从...

    安卓开发-Android 电量显示Widgets插件实现.zip.zip

    本教程将聚焦于如何实现一个电量显示Widgets插件,帮助用户快速查看设备的电池状态。以下是实现这个功能的具体步骤和相关知识点: 1. **理解Android Widgets**: Android Widgets是桌面快捷方式之外的一种组件,...

    Android-Android桌面小部件widget日签Or日历可作为桌面日历

    在Android平台上,开发者可以利用Android桌面小部件(Widget)功能为用户提供便捷的桌面服务,比如“Android桌面小部件widget日签Or日历可作为桌面日历”就是一个很好的例子。这个应用设计巧妙,不仅展示了日期,还...

    Android App Widget 开发

    Android App Widget是Android系统提供的一种轻量级的UI组件,允许开发者在用户的主屏幕上放置一些交互式的快捷方式或小部件,提供类似于桌面小工具的功能。这些小部件可以显示实时信息,如天气、日历事件、音乐播放...

    AndroidWidget电池插件

    本教程将深入探讨如何创建一个名为"AndroidWidget电池插件"的项目,让用户能通过点击该插件获取电池状态的详细信息。 首先,我们从创建一个新的Android项目开始。在Android Studio中,选择"New Project",然后在...

    Android 电量显示Widgets

    本文将深入探讨如何开发一个Android电量显示Widget,包括必要的技术知识点和源码解析。 首先,我们需要理解Android Widget的基本概念。Widget是Android应用的一部分,可以在主屏幕上独立运行,提供快速访问或控制...

    Android课程设计Widget电池插件

    本课程设计的主题是“Android课程设计Widget电池插件”,旨在让学生掌握如何创建一个能够显示电池状态的桌面小部件。 首先,理解Android Widget的基本结构至关重要。一个Android Widget通常由XML布局文件定义其外观...

    Android电池电量监控Widget

    "Android电池电量监控Widget"就是这样的一个工具,它专为用户提供方便快捷的电池状态查询服务。这款Widget设计小巧,用户只需轻轻一点桌面上的小Android机器人图标,就能获取到关于电池的各种关键信息。 首先,我们...

    Android应用源码之 电量显示Widgets插件实现-IT计算机-毕业设计.zip

    在Android应用开发中,创建一个电量显示Widgets插件是一个实用且常见的需求,尤其适用于毕业设计项目,以展示学生的实际操作能力和技术理解。本项目主要涵盖了Android应用的基本组件使用、电量管理API的集成以及...

    安卓Android源码——电量显示Widgets插件实现.zip

    在安卓平台上,开发一款电量显示Widgets插件涉及到多个关键知识点,包括Android SDK的使用、Widget API的掌握、UI设计以及电源管理API的应用。下面将详细解释这些知识点。 1. **Android SDK**: 安卓应用程序的基础...

    Android源码——电量显示Widgets插件源码.zip

    在Android系统中,Widgets是应用程序提供给用户的一种交互方式,让用户可以在主屏幕上快速访问或控制应用功能,而“Android源码——电量显示Widgets插件源码”则是一个专门用来显示设备电量信息的小部件。...

    android widget 电池挂件

    在本例中,我们讨论的是一个名为"疯狂电池"的Android小部件,它专注于显示电池状态,即“android widget 电池挂件”。这个小部件旨在帮助用户方便地监控设备的电池电量,从而优化电源管理。 开发一个Android Widget...

    Android程序研发源码Android 电量显示Widgets插件源码.zip

    在Android平台上,开发一款电量显示Widgets插件涉及到多个关键知识点,包括Android系统架构、Widget API、电量监控机制、UI设计以及性能优化等。下面将详细阐述这些内容。 1. **Android系统架构**: Android系统由...

    Android 电量显示Widgets插件源码-IT计算机-毕业设计.zip

    总之,这个“Android电量显示Widgets插件源码”涵盖了Android开发的核心技术,包括Widget开发、电源管理、用户界面设计、事件监听、生命周期管理以及性能优化。对于想要深入理解Android平台的开发者,这是一个很好的...

Global site tag (gtag.js) - Google Analytics