package com.feng;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.ProgressBar;
public class MyProgress extends ProgressBar{
String text;
Paint mPaint;
public MyProgress(Context context) {
super(context);
// TODO Auto-generated constructor stub
System.out.println("1");
initText();
}
public MyProgress(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
System.out.println("2");
initText();
}
public MyProgress(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
System.out.println("3");
initText();
}
@Override
public synchronized void setProgress(int progress) {
// TODO Auto-generated method stub
setText(progress);
super.setProgress(progress);
}
@Override
protected synchronized void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//this.setText();
Rect rect = new Rect();
this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect);
int x = (getWidth() / 2) - rect.centerX();
int y = (getHeight() / 2) - rect.centerY();
canvas.drawText(this.text, x, y, this.mPaint);
}
//初始化,画笔
private void initText(){
this.mPaint = new Paint();
this.mPaint.setColor(Color.WHITE);
//在原作者的基础上增加了以下代码,因为在高分辨率的手机下,进度条里的字体太小
DisplayMetrics dm = getResources().getDisplayMetrics();
int displayWidth = dm.widthPixels;
if(displayWidth>480)
{
this.mPaint.setTextSize(36);
}
else
{
this.mPaint.setTextSize(18);
}
}
private void setText(){
setText(this.getProgress());
}
//设置文字内容
private void setText(int progress){
int i = (progress * 100)/this.getMax();
this.text = String.valueOf(i) + "%";
}
/**
* @Description: TODO
* @param context
* @return
* @return float
*/
public static int getScreenWidth(Activity context) {
DisplayMetrics metric = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metric);
return metric.widthPixels;
}
/**
* @Description: TODO
* @param context
* @return
* @return float
*/
public static int getScreenHeight(Activity context) {
DisplayMetrics metric = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metric);
return metric.heightPixels;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
android 自定义百分比显示进度条(改进版)
共38个文件
class:12个
png:8个
xml:4个
4星 · 超过85%的资源 需积分: 47 572 下载量 120 浏览量
2015-03-17
11:05:23
上传
评论 3
收藏 675KB RAR 举报
温馨提示
android 自定义百分比显示进度条(改进版),在原作者的基础上修改,改进的地方就是百分比文字显示在不同手机分辨率下进行处理,大家还可以继续在此基础上继续改进,本人主要使用在项目的系统版本更新,使用语法与原ProgressBar一样
资源推荐
资源详情
资源评论
收起资源包目录
JinDuT.rar (38个子文件)
JinDuT
.project 842B
project.properties 563B
proguard.cfg 1KB
src
com
feng
MyProgress.java 3KB
ProgressTest.java 2KB
AndroidManifest.xml 675B
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
logo_r.png 169KB
drawable-mdpi
icon.png 3KB
layout
main.xml 835B
drawable-xhdpi
values
strings.xml 173B
.settings
org.eclipse.jdt.core.prefs 177B
assets
gen
com
feng
BuildConfig.java 150B
R.java 881B
.classpath 475B
bin
resources.ap_ 159KB
classes
com
feng
R$layout.class 364B
ProgressTest$2.class 994B
MyProgress.class 3KB
BuildConfig.class 325B
R$drawable.class 400B
R$attr.class 310B
ProgressTest.class 2KB
ProgressTest$1.class 907B
ProgressTest$2$1.class 1KB
R$id.class 414B
R.class 461B
R$string.class 397B
JinDuT.apk 166KB
AndroidManifest.xml 675B
dexedLibs
annotations-8629d0fab628888494b980c2da69ab69.jar 943B
jarlist.cache 120B
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
logo_r.png 149KB
drawable-mdpi
icon.png 2KB
classes.dex 9KB
共 38 条
- 1
tang0575
- 粉丝: 2
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- date0425111111111111111111111
- 包含贪心算法的定义及python代码部分实现
- 自动驾驶-状态估计和定位之扩展卡尔曼滤波.pdf
- csdn之x-ca-key,x-ca-nonce,x-ca-signature与x-ca-signature-headers探索
- 基于TM1620数码显示芯片STM32单片机驱动程序软件源代码.zip
- 【tomcat6使用redis配置session共享】
- 包含杨辉三角的说明及java代码实现
- FDN371N-NL-VB一款SOT23封装N-Channel场效应MOS管
- AutomotiveSPICE-V4.0 中文版
- Java实现杨辉三角的生成和打印代码示例.md
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页