下面介绍了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文件中定义:

     

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实现显示电量的控件代码就给大家介绍到这里了。希望大家继续关注我们的网站!

更多相关文章

  1. Android给图片加文字和图片水印
  2. WebView简介(加速加载篇)
  3. [Android]只显示月和日的DatePickerDialog
  4. Android开发历程_6(RadioButton和CheckBox的使用)
  5. 支付宝转账小demo(不需要库)
  6. Android教程之如何使用自定义字体
  7. Android(安卓)Canvas 绘图
  8. 浅析android 控件listView中的设计模式
  9. 安卓控件之文本框(TextView)

随机推荐

  1. android 下载文件注意事项
  2. spring android 编译环境搭建
  3. Android(安卓)TextView中链接(link)点击
  4. android 拖动条改变屏幕亮度
  5. Android官方入门文档[3]构建一个简单的用
  6. Android(安卓)OnTouchListener实时监听触
  7. Android(安卓)动画旋转效果
  8. Android复制手机号码到剪切板并调起打电
  9. 刚学会百度地图最新版的sdk,总结一个简单
  10. 最新Android(安卓)ADT, SDK, SDK_tool等