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

下面介绍了Android实现显示电量的控件代码,具体代码如下:

1、目录结构,本人是使用安卓死丢丢。

2、运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量

3、绘制自定义电池控件,首先,新建一个类BatteryState继承View

private Context mContext;
private float width;
private float height;
private Paint mPaint;
private float powerQuantity=0.5f;//电量 

要使用到的变量

public BatteryState(Context context) {
  super(context);
  mContext=context;
  mPaint = new Paint(); 

} 

public BatteryState(Context context, AttributeSet attrs) {
  super(context, attrs);
  mContext=context;
  mPaint = new Paint();
} 

public BatteryState(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
  mContext=context;
  mPaint = new Paint();
}

三个构造方法,自定义控件的时候一般会把这三个构造方法写出来,便于在layout中使用或者直接定义,其中AttributeSet是当使用xml文件定义该控件时引用的属性集

@Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//    计算控件尺寸
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  } 

  @Override
  protected void onDraw(Canvas canvas) {
//绘制界面
    super.onDraw(canvas);
    Bitmap batteryBitmap=ReadBitMap(mContext, R.drawable.battery_empty);//读取图片资源
    width=batteryBitmap.getWidth();
    height=batteryBitmap.getHeight();
    if (powerQuantity>0.3f&&powerQuantity<=1) {
//      电量少于30%显示红色
      mPaint.setColor(Color.GREEN);
    }
    else if (powerQuantity>=0&&powerQuantity<=0.3)
    {
      mPaint.setColor(Color.RED);
    }
//    计算绘制电量的区域
    float right=width*0.94f;
    float left=width*0.21f+(right-width*0.21f)*(1-powerQuantity);
    float tope=height*0.45f;
    float bottom=height*0.67f; 

    canvas.drawRect(left,tope,right,bottom,mPaint);
    canvas.drawBitmap(batteryBitmap, 0, 0, mPaint);
  }

由于我们定义的控件时一个单个控件,不是容器控件,所以我只重写了onMeasure、onDraw分别用来计算大小和绘制界面,根据背景图片来计算要绘制的区域

  public void refreshPower(float power)
{
  powerQuantity=power;
  if (powerQuantity>1.0f)
    powerQuantity=1.0f;
  if (powerQuantity<0)
    powerQuantity=0;
  invalidate();
}

刷新控件

4、在xml文件中定义:

<LinearLayout
  android:layout_width="wrap_content"
  android:layout_marginLeft="30dp"
  android:layout_height="30dp">
  <com.example.administrator.batterytest.BatteryState
    android:id="@+id/bs_power"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout> 

5、在Activity中使用

mBtnTry = (TextView) findViewById(R.id.btn_try);
    mBtnTry.setText("刷新电量");
//    mBtnTry.setBackground(getResources().getDrawable(R.drawable.maxwell_sun_5_bar));
    mBsPower = (BatteryState) findViewById(R.id.bs_power);
    mBtnTry.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        float power = Integer.parseInt(mEtPower.getText().toString());
        float p = power / 100;
        mBsPower.refreshPower(p);
      }
    }); 

希望本文所述对你有所帮助,Android实现显示电量的控件代码就给大家介绍到这里了。希望大家继续关注我们的网站!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 电量显示
android电量监控
android 实现悬浮控件、android 控件实现tint、代码实现复制控件、安卓控件代码实现、android代码添加控件,以便于您获取更多的相关知识。

时间: 2024-09-20 17:46:37

Android实现显示电量的控件代码_Android的相关文章

Android中显示GIF动画的实现代码_Android

本文实例讲述了Android中显示GIF动画的实现代码.分享给大家供大家参考,具体如下: gif图动画在android中还是比较常用的,比如像新浪微博中,有很多gif图片,而且展示非常好,所以我也想弄一个.经过我多方的搜索资料和整理,终于弄出来了,其实github上有很多开源的gif的展示代码,我下载过几个,但是都不是很理想,不是我完全想要的.所以有时候就得自己学会总结,把开源的东西整理成自己的,现在无聊,也正好有朋友需要,所以现在整理了一下,留着以后备用! 废话不多说,直接上图: 在这里主要用

android球形水波百分比控件代码_Android

本文主要介绍的是一个球形水波的百分比控件,市面上有各种形形色色的百分比控件,我一直觉得水波是最炫的,UI给了我这个机会,然而网上搜了一大堆,不是太复杂,代码太多(反正我是调不出效果来),就是有瑕疵的,所以只好自己写了,这里开源出来,方便大家.有什么问题或者建议大家留言指出. 先看效果,这里动态图不好截取,就贴张静态的 对于水波百分比控件实现方法有如下几种 - 画好水波形状的bitmap,利用属性动画进行平移 - 利用曲线精确绘制目标水波 - 利用大范围曲线与容器做交集 第一种比较烦,网上有这种思

[Android] 拍照、截图、保存并显示在ImageView控件中

    最近在做Android的项目,其中部分涉及到图像处理的内容.这里先讲述如何调用Camera应用程序进行拍照,并截图和保存显示在ImageView控件中以及遇到的困难和解决方法.     PS:作者购买了本<Android第一行代码 著:郭霖>,参照里面的内容完成(推荐该书,前面的布局及应用非常不错).网上这类资料非常多,作者仅仅分享给初学者同时在线记录些内容,希望对大家有所帮助.    首先,设置activity_main.xml为LinearLayout布局且 android:ori

最近需要显示html代码,请问有显示html的控件吗?webbrowser不行

问题描述 最近需要显示html代码,请问有显示html的控件吗?webbrowser不行,一会显示,一会儿不显示.而且document.text和WebBrowser1.Document.Body.InnerHtml内容完全不一样.所以想找一个替代的控件,请问有知道的么? 解决方案 解决方案二:WebKit.net

Android编程开发之Spinner控件用法实例分析_Android

本文实例讲述了Android编程开发之Spinner控件用法.分享给大家供大家参考,具体如下: 下拉列表 Spinner,Spinner是一个每次只能选择所有项的一个项的控件.它的项来自于与之相关联的适配器中. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来.供用户选择. 一.使用数组作为数据源 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/ap

控件的使用-android开发中使用Spinner控件遇到了一个问题

问题描述 android开发中使用Spinner控件遇到了一个问题 我的本意是使用Spinner下拉列表,当点这个控件的时候,下拉列表中的选项是图片,我用Bitmap这个类型加入了list三个选项,下面是我的代码: public class SpinnerView extends Activity { private Spinner spinner; private Bitmap tp,cp,sp; private ArrayAdapter adapter; protected void onC

Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

Android高效率编码-细节,控件,架包,功能,工具,开源汇总 其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来看看,这样子对自己也有好处,所以今天就汇总一下一些需要的东西.多图来了,加油! 一.游戏 小熊打字,我刚接触电脑练习打字的时候用到的 下载地址:http://download.csdn.net/detail/qq_26787115/9365721 二.色彩 这张颜色表上的颜色都太赞了 三.控件 1.

Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)_Android

 做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的. 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件,然后初始化该控件并对该控件添加文本监听.xml自己简单的设计一下,代码较为简单,直接上代码: package com.example.edittext; import android.app.Activity; import android.os.Bundle; import a

Android开发技巧之ViewStub控件惰性装载_Android

在4.5.6节介绍过一个<include>标签,该标签可以在布局文件中引用另外一个布局文件,并可以覆盖被引用布局文件根节点所有与布局相关的属性,也就是以android:layout开头的属性.通过<include>标签可以将一个非常庞大的布局文件分解成若干个较小的布局文件,而且这些小的布局文件也可以被多次引用,从而达到一个重用的目的. <include>标签固然很好用,但有一个问题,就是布局文件中的控件并不一定在程序启动时全都用到,有一些控件只在特定的情况下才会被使用到