当前位置: 首页 > news >正文

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

最近,制作一个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" />

四、附图片效果

6f40a0db841b714dbe4cbd515787fd1c.png

df52a5a23f4c368285f4a5a8bd9c0b87.png

五、下载路径

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 ...


http://www.taodudu.cc/news/show-1944794.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • gif透明背景动画_PS教程:把静态照片做成GIF放大动画效果
  • vc++中实现进度条
  • 关于form提交后展示遮罩及显示进度条gif问题
  • 小程序影藏溢出的gif_动图制作方法,1分钟教会你如何制作gif表情包!
  • 自动生成动态gif的一个网站(进度条)
  • 进度条制作-GIF动画
  • 275页PDF:《编写高质量代码:改善Python程序的91个建议》
  • 【读书心得】 高质量C++/C编程指南-林锐
  • 高质量图片缩略图生成(编程笔记)
  • 极限编程
  • 全球编程厉害的14位大佬
  • 概率编程实战
  • 《高质量C++/C编程指南(林锐)》学习笔记
  • 高质量电子书分享
  • 构建高质量的前端工程完全指南
  • C#网络编程(Socket编程)
  • 改善代码质量的编程规范
  • 高质量程序好文分享之王垠《编程的智慧》
  • 高质量的C/C++编程(2)----程序员必看系列
  • 高质量计算机学习网站
  • 林锐的《高质量编程》学习笔记——内存分配方式
  • c语言是高级编程语言吗,C语言是高级编程语言吗?
  • 推荐一些高质量的自学网站
  • 《高质量C/C++编程》读书笔记
  • 高质量编程之编译警告级别
  • 高质量C编程00-汇总
  • C/C++ 高质量编程--内存,二重指针,指针的高级使用解析 3
  • 林锐高质量编程中的几道面试题
  • 人类高质量编程语言Delphi盛大发布2021新版本RAD Studio 11 Alexandria
  • 嵌入式C高质量编程培训心得笔记