TOP5_3:定制简单的进度条
结构:
Activity:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
- android:layout_width="match_parent" android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context="com.example.top5.MainActivity">
- <com.example.top5_3.MyProgressBar
- android:id="@+id/pb"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:max=""
- style="@android:style/Widget.ProgressBar.Horizontal"/>
- </RelativeLayout>
JAVA:
MainActivity:
- package com.example.top5_3;
- import android.app.Activity;
- import android.os.Handler;
- import android.os.Message;
- import android.os.Bundle;
- import android.view.Menu;
- import android.widget.ProgressBar;
- public class MainActivity extends Activity {
- private MyProgressBar pb;
- Handler hd = new Handler() {
- public void handleMessage(Message msg) {
- pb.setProgress(msg.what);
- }
- };
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- pb = (MyProgressBar) findViewById(R.id.pb);
- new Thread(new Runnable() {
- @Override
- public void run() {
- for (int i = ; i <= ; i+=) {
- Message mg = new Message();
- mg.what = i;
- hd.sendMessage(mg);
- try {
- Thread.sleep();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }).start();
- }
- public boolean onCreateOptionsMenu(Menu menu)
- {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
MyProgressBar:
- package com.example.top5_3;
- import java.text.MessageFormat;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.graphics.Paint.Align;
- import android.graphics.Paint.FontMetrics;
- import android.util.AttributeSet;
- import android.widget.ProgressBar;
- public class MyProgressBar extends ProgressBar {
- private Paint paint=new Paint();
- public MyProgressBar(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
- public MyProgressBar(Context cont,AttributeSet attrs) {
- // TODO Auto-generated constructor stub
- super(cont,attrs);
- }
- protected synchronized void onDraw(Canvas cv){
- super.onDraw(cv);
- //进度天百分比
- int reta=(int)((double)getProgress()/this.getMax()*);
- //要绘制的文字
- String tip=MessageFormat.format("{0}%",reta);
- //设置文字对齐方式
- paint.setTextAlign(Align.CENTER);
- //设置文字颜色
- paint.setColor(Color.BLUE);
- //设置字体大小
- paint.setTextSize();
- //Canvas绘制文本时,使用 fontMetrics对象,计算坐标位置
- FontMetrics fmt=paint.getFontMetrics();
- int h=(int)((fmt.bottom-fmt.top)/-fmt.bottom);
- //进行绘制
- cv.drawText(tip, this.getWidth()/, this.getHeight()/+h, paint);
- }
- }
运行效果:
TOP5_3:定制简单的进度条的更多相关文章
- 使用原生JS+CSS或HTML5实现简单的进度条和滑动条效果(精问)
使用原生JS+CSS或HTML5实现简单的进度条和滑动条效果(精问) 一.总结 一句话总结:进度条动画效果用animation,自动效果用setIntelval 二.使用原生JS+CSS或HTML5实 ...
- Winfrom 简单的进度条小程序
使用Winform空间编写简单的进度条小程序: 所需控件:Lable 标签 TextBox 文本框 progressBar 进度条控件 timer 定时器 下面是源码及效果图: /// &l ...
- Linux shell 下简单的进度条实现
Linux shell 下简单的进度条实现 [root@db145 ~]# cat print_process.sh function Proceess(){ spa='' i= ] do print ...
- Python——一个简单的进度条的实现
import math def process_bar(total_work,work_index,length): times = total_work / length # 长度倍数,用来缩放或扩 ...
- html + css + jquery实现简单的进度条实例
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...
- Linux中实现一个简单的进度条【转】
转自:http://blog.csdn.net/yuehailin/article/details/53999288 说起进度条,其实大家常常见到,比如说你在下载视频或文件的时候,提示你当前下载进度的 ...
- Linux简单的进度条
echo '进度条' i= bar="" ] do let idx=i% printf "[%-100s][%d%%]\r" "$bar" ...
- python中实现一个简单的进度条
import time def progress(n,a): m = int(n / a * 100) x = int(n / a * 10) time.sleep(0.2) #只是为了让进度条明显 ...
- HTML5+CSS+JQuery 实现简单的进度条功能
样式: <style type="text/css"> .processcontainer2{ width:450px; border:1px solid #6C9C2 ...
随机推荐
- 学习swift从青铜到王者之字符串和运算符02
1 字符和字符串初步 var c :Character = "a" 2 构造字符串 let str1 = "hello" let str2 = " ...
- 【CV论文阅读】生成式对抗网络GAN
生成式对抗网络GAN 1. 基本GAN 在论文<Generative Adversarial Nets>提出的GAN是最原始的框架,可以看成极大极小博弈的过程,因此称为“对抗网络”.一般 ...
- hdu 4291 矩阵幂 循环节
http://acm.hdu.edu.cn/showproblem.php?pid=4291 凡是取模的都有循环节-----常数有,矩阵也有,并且矩阵的更奇妙: g(g(g(n))) mod 109 ...
- 【DataStructure】Charming usage of Set in the java
In an attempt to remove duplicate elements from list, I go to the lengths to take advantage of meth ...
- 浅谈MySQL load data local infile细节 -- 从源码层面
相信大伙对mysql的load data local infile并不陌生,今天来巩固一下这里面隐藏的一些细节,对于想自己动手开发一个mysql客户端有哪些点需要注意的呢? 首先,了解一下流程: 3个 ...
- HttpUtils 发送http请求工具类
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URISyntaxEx ...
- easyUI的getChanges中的inserted
easyUI中的datagrid.treegrid编辑了数据,可以用getChanges命令来获取更新情况.按道理,有"inserted"."updated". ...
- 2016/1/27 1, File 创建 删除 改名 换路径 2,输出流 不覆盖 换行输入 3,输入流
1, File 创建 删除 改名 换路径 package Stream; import java.io.File; import java.io.IOException; public cla ...
- 脱离开发软件启动Tomcat访问项目
作为开发人员平时用的最多的就是通过开发软件启动Tomcat服务,从而访问项目.这样便于开发的bug调试 此处讲的是脱离开发软件启动Tomcat访问项目 链接参考: http://jingyan.bai ...
- Oracle存储过程(增、删、改)写法、oracle执行存储过程
Oracle存储过程(增.删.改)写法 发布时间: 2010-3-24 11:07 作者: ZHF 来源: 51Testing软件测试网采编 字体: 小 中 大 | 上一篇 下一篇 ...