最近,制作一个app,需要模拟一个电池电量的进度条,根据电量多少来设置百分比,进度条不断上下滚动,就像平时手机充电一样的电池电量进度条。我就自定义view实现了电量进度条。修改图片就可以达到自己想要的效果

一、自定义View,Battery.java,循环刷新界面,两张图片上下滚动,达到不断向右移动的效果。挺有意思的

package com.example.battery;

import android.content.Context;

import android.content.res.Resources;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.drawable.BitmapDrawable;

import android.os.Handler;

import android.os.Message;

import android.util.AttributeSet;

import android.view.View;

public class Battery extends View {

public float currentX = 80;

public float currentY = 80;

private float secondY = 80;

private Paint mPaint = new Paint();

private Context mContext;

private Handler mHandler;

private Bitmap mBmp;

private int speedTime = 20;

private float with = 200;

private float height = 50;

private float percentage = 0.5f;

public Battery(Context context) {

super(context);

this.mContext = context;

}

public Battery(Context context, AttributeSet set) {

super(context, set);

this.mContext = context;

init();

}

public void onDraw(Canvas canvas) {

super.onDraw(canvas);

with = this.getWidth();

height = this.getHeight();

mPaint.setColor(Color.BLUE);

Resources res = mContext.getResources();

BitmapDrawable bmpDraw = (BitmapDrawable) res

.getDrawable(R.drawable.loading_pic);

mBmp = bmpDraw.getBitmap();

canvas.clipRect(0, 0, with*percentage, height);

canvas.drawBitmap(mBmp, 0, currentY, mPaint);

canvas.drawBitmap(mBmp, 0, secondY, mPaint);

}

private void init() {

percentage = 0;

mHandler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

currentX ++;

currentY ++;

if (mBmp != null && currentY > mBmp.getHeight()){

currentY = -mBmp.getHeight();

}

if (mBmp != null){

secondY = currentY+mBmp.getHeight();

if (secondY >= mBmp.getHeight()){

secondY = currentY-mBmp.getHeight();

}

}

percentage = percentage + 0.003f;

if (percentage > 1){

percentage = 0;

}

// 每次计算后都发送消息进入下一次循环,并刷新界面

mHandler.sendEmptyMessageDelayed(1, speedTime);

postInvalidate();

break;

}

super.handleMessage(msg);

postInvalidate();

}

};

// 首次循环刷新界面

mHandler.sendEmptyMessageDelayed(1, speedTime);

}

}

二、MainActivity

package com.example.battery;

import android.app.Activity;

import android.os.Bundle;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

三、activity_main

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_gravity="center"

android:gravity="center" >

android:layout_width="300dp"

android:layout_height="10dp"

android:layout_gravity="center"

android:gravity="center"

android:padding="10dp" />

四、附图片效果

五、下载路径

Android电池电量跳变

高通平台8916/8917 对于第三方Fuel Gauge,跳变多是因为IC内部算法的问题,这样我们可以通过驱动来规避. 例如:usb在位时,要阻止电量的向下跳变. 当电量越级跳变时,要在驱动中能检测 ...

Android 进度条(ProgressBar)和拖动条(Seekbar)补充“自定义组件”(总结)

这周结束了,我也码了一周的字,感觉还是很有种脚踏实地的感觉的,有时间就可以看看自己的总结再查漏补缺,一步一个脚印,做出自己最理想的项目. 今天我们讲两点: 1.ProgressBar: 其实前面也稍微 ...

Android -- 真正的 高仿微信 打开网页的进度条效果

(本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...

Android UI系列-----时间、日期、Toasts和进度条Dialog

您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

【转】Android UI系列-----时间、日期、Toasts和进度条Dialog

原文网址:http://www.cnblogs.com/xiaoluo501395377/p/3421727.html 您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注 ...

Xamarin iOS教程之进度条和滚动视图

Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...

基于jQuery带进度条全屏图片轮播代码

基于jQuery带进度条全屏图片轮播代码.这是一款基于jQuery实现的oppo手机官网首页带进度条全屏图片轮播特效.效果图如下: 在线预览   源码下载 实现的代码. html代码:

详细分析Android viewpager 无限循环滚动图片

由于最近在忙于项目,就没时间更新博客了,于是趁着周日在房间把最近的在项目中遇到的技术总结下.最近在项目中要做一个在viewpager无限滚动图片的需求,其实百度一下有好多的例子,但是大部分虽然实现了, ...

Delphi XE5 android 获取电池电量

uses AndroidAPI.JNI.GraphicsContentViewText, AndroidAPI.JNI.JavaTypes, AndroidAPI.JNI.OS; function B ...

随机推荐

Optimize Managed Code For Multi-Core Machines

Parallel Performance Optimize Managed Code For Multi-Core Machines Daan Leijen and Judd Hall This ar ...

iOS开发之四张图说明GCD(Grand Central Dispatch)附Test源码

首先,先介绍几个概念:GCD,队列,串行,并行,同步,异步.                                                                       ...

c语言学习,模拟栈操作

1.stack.c模拟栈操作函数的实现 #include #include ; static char *stack;//数据栈 ;//栈 ...

chromedriver bug

https://github.com/FuckTheWorld/chromedriver/issues/1145 https://bugs.chromium.org/p/chromedriver/is ...

UIGestureRecognizer 手势浅析

目录[-] iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一.引言 二.手势的抽象类——UIGestureRecognizer 1.统一的初始化方法 2.手势状态 ...

用Maven打包成EAR部署JBoss

基于原理的架构里面,考虑这次升级版本,可谓是一步一个脚印的向上走啊,可以说步步为坎,别人的知识,和自己的知识,相差很多啊,什么都懂点,但是具体没有使用,就理解不深刻了,心有余而力不足,所以一切我们自己 ...

SpringMVC学习笔记:拦截器和过滤器

首先说明一下二者的区别: 1. 拦截器基于java的反射机制,而过滤器是基于函数回调 2. 拦截器不依赖于servlet容器,过滤器依赖servlet容器 3. 拦截器只能对action请求起作用,而 ...

C# WINFORM 打包数据库

实现效果:安装项目时直接附加数据库. 1.首先在需要部署的项目的解决方案资源管理器中新建一个安装项目   2.在安装项目的文件视图中,右键[应用程序文件夹]->[添加]->[项目输出]   ...

光杆mdf文件的导入

场景,准备学习SSAS的时候,按照教程在微软下载了示例数据库AdventureWorksDW2012,下载来才发现只有一个mdf文件. 正好今天群里有位兄弟也碰到差不多的问题,客户数据库里的ldf文件 ...

9.12DjangoORM回顾和路由.

2018-9-12 13:44:41 周末继续整理一下博客!不知不觉记了好多! 越努力越幸运! 永远不要高估自己! 关于反射的复习 # /usr/bin/env python # -*- coding ...

android 消息循环滚动条,Android 电池电量进度条,上下滚动图片的进度条(battery)...相关推荐

  1. android 消息循环滚动条,Android ViewPager实现循环滚动

    流量预警 内含三张4M+的GIF图片,流量慎入 转载请注明出处 以下图片来源于https://pixabay.com/ gif!图片外链服务由贴图库提供 画廊效果的部分来自博客园博主@阿呆哥哥的教程 ...

  2. android消息队列模型,Android 消息队列机制

    在非UI线程使用Handler进行线程通信时,一般都需要进行3个步骤: 创建Looper Looper.prepar() 创建Handler 启动消息循环Looper.loop() 通过这3步,基本就 ...

  3. android 消息循环机制--looper handler

    Looper类说明   Looper 类用来为一个线程跑一个消息循环. 线程在默认情况下是没有消息循环与之关联的,Thread类在run()方法中的内容执行完之后就退出了,即线程做完自己的工作之后就结 ...

  4. 修改电量android,安卓手机端修改电池电量图标的教程

    安卓手机端是可以给电池电量图标进行修改的,恐怕大家都不知道吧,不同的系统基本都有比一样的电量图标,这就导致了不是每一个人都喜欢同一个图标,现在我就来为大家讲解如何在手机端修改电量图标的教程. 第一步: ...

  5. android 设置listview滚动条,Android ListView 滚动条的设置详解及实例代码

    Android ListView 滚动条的设置详解 1.滚动条的属性 android:scrollbarAlwaysDrawHorizontalTrack 设置是否始终显示水平滚动条.这里用Scrol ...

  6. android 自定义view滚动条,Android自定义View实现等级滑动条的实例

    Android自定义View实现等级滑动条的实例 实现效果图: 思路: 首先绘制直线,然后等分直线绘制点: 绘制点的时候把X值存到集合中. 然后绘制背景图片,以及图片上的数字. 点击事件down的时候 ...

  7. android+清除循环动画,android自定义View之(4)-一键清除动画

    android自定义View之(四)------一键清除动画 1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解, ...

  8. MTK Android O 充电状态下电池电量100%时不显示闪电图标

    需求: android 8.1.1版本google原生充电的时候都会显示一个闪电的形状,客户要求在百分之百电量的时候不显示闪电 修改: frameworks\base\packages\Setting ...

  9. android 垂直自动滚动条,Android实现Activity水平和垂直滚动条的方法

    本文实例讲述了Android实现Activity水平和垂直滚动条的方法.分享给大家供大家参考,具体如下: android:layout_width="match_parent" a ...

  10. android消息发送字符串,android - 从Android客户端通过HTTP在HL7消息中发送base64字符串时遇到错误 - 堆栈内存溢出...

    我正在android客户端(API 17)中使用HL7消息,并使用Hapi库生成和解析HL7消息.当我传输小的字符串值时,该消息工作正常. 但是我必须通过Http将图像发送到HL7服务器,为此,我正在 ...

最新文章

  1. LeetCode简单题之检查字符串是否为数组前缀
  2. 又爱又恨的 Microsoft Edge!
  3. java增强型for循环(三种遍历集合方式)
  4. LeetCode题组:第9题-回文数
  5. eclipse format的时候如何让@param后不换行
  6. zabbix 2.2 监控mysql_Zabbix-2.2.2监控MySQL的复制-阿里云开发者社区
  7. u盘修复linux系统,360u盘修复工具官方版u盘pe安装linux系统
  8. TensorFlow(四)优化器函数Optimizer
  9. 50张神图……好不容易才找到完整版!
  10. 【转】 IIS_WPG 用户组权限问题
  11. 指令由电子计算机,电子计算机主要是以
  12. java servlet 执行 多次_servlet 验证生命周期过程调用方法的次数
  13. lr常用的几个函数(不完整)
  14. win10 mfc 连接mysql_win10下使用c语言连接mysql
  15. 【系统架构】缓存Memcache 使用原子性操作add,实现并发锁
  16. EDEM创建用于模拟颗粒工厂的多边形后,选中多边形视图中不显示红色多边形
  17. MacOS升级Big Sur后32位锐捷客户端排坑历程
  18. web前端工程师岗位职责、岗位要求
  19. 【自动驾驶】Frenet坐标系与Cartesian坐标系(一)
  20. torch中repeat()函数的准确理解

热门文章

  1. 外汇EA 指标加密方法
  2. JAVA毕业设计高速公路收费管理计算机源码+lw文档+系统+调试部署+数据库
  3. 单片机固件烧录器 Firmware Writer Android APP
  4. 【CC2530入门教程-01】CC2530微控制器开发入门基础
  5. Mysql中Regexp常见用法
  6. 下载Linux版(rpm格式),WPS Office 2019 Linux 11.1.0.9505版提供Deb、Rpm格式包下载
  7. c语言汇率转换代码_C语言人民币转换代码..doc
  8. 03.【Axure 10 】win系统软件汉化
  9. python 手机号码识别_python3库可以识别电话号码、姓名、电子邮件和地址
  10. 安装 Linux 系统,如何选择操作系统和电脑硬件