Android 图片加载带进度条的ImageView

原创 2018年04月17日 15:30:00

很多时候图片上传的时候需要一个有加载效果的ImageView,其实实现起来也非常简单

public class LoadingImgView extends ImageView{  
  
    private float per;  
  
    private boolean isfinished = false;  
  
    private String colorStr;  
  
    private Paint paintLayer;  
    private Paint textPaint;  
  
    private Rect textbound;  
  
    private float layer_w;  
    private float layer_h;  
  
    public LoadingImgView(Context context) {  
        super(context);  
        init();  
    }  
  
    public LoadingImgView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
        init();  
    }  
  
    public LoadingImgView(Context context, AttributeSet attrs, int defStyleAttr) {  
        super(context, attrs, defStyleAttr);  
        init();  
    }  
  
    //初始化画笔  
    private void init(){  
        paintLayer = new Paint();  
        paintLayer.setColor(Color.LTGRAY);  
        paintLayer.setAlpha(100);  
        textPaint = new Paint();  
        textPaint.setColor(Color.DKGRAY);  
        textPaint.setTextSize(25);  
        textbound = new Rect();  
    }  
  
    @Override  
    protected void onDraw(Canvas canvas) {  
        super.onDraw(canvas);  
        if (isfinished)  
            return;  
        String perStr = (int) (per*100) + "%";  
        //获取文字区域的矩形大小,以便确定文字正中间的位置  
        textPaint.getTextBounds(perStr,0, perStr.length(),textbound);  
        layer_w = getWidth();  
        layer_h = getHeight()*per;  
        float y = getHeight() - layer_h;  
        //画遮蔽层  
        canvas.drawRect(0,y,layer_w,getHeight(),paintLayer);  
        //画文字  
        canvas.drawText(perStr, getWidth() / 2 - textbound.width() / 2, getHeight() / 2 + textbound.height() / 2, textPaint);  
    }  
  
    public void setPer(float per){  
        this.per = per;  
        //在主线程刷新  
        postInvalidate();  
    }  
  
    public void finish(){  
        isfinished = true;  
        postInvalidate();  
    }  
  
}  
其实也没什么要注意的地方,算是最简单的自定义控件之一了。有需要的可以改一改。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shu_quan/article/details/79975578

[Android自定义控件]带加载进度条的ImageView

很多时候图片上传的时候需要一个有加载效果的ImageView,其实实现起来也非常简单,下面是这个控件的demo 实现: public class LoadingImgView ...
  • ganyao939543405
  • ganyao939543405
  • 2016-09-02 14:58:07
  • 1943

自定义控件实现带进度条的ImageView

效果如图所示: 代码解析: public void onDraw(Canvas canvas) { super.onDraw(canvas); if (mSh...
  • qin19930929
  • qin19930929
  • 2016-02-17 16:49:23
  • 1243

加载网络图片显示进度条,可支持所有继承 imageview 的控件

加载网络图片显示进度条,可支持所有继承 imageview 的控件
  • u014608640
  • u014608640
  • 2016-11-02 13:54:23
  • 545

ListView中ImageView加载等待动图、进度条

分享一个ImageView图片加载时显示的圆圈动画,单个的Image大图在显示图片加载中的等待动画很容易实现,但是在ListView中的item加载的动画不太好实现,本文是分享了一个自己实现的demo...
  • qq_15110579
  • qq_15110579
  • 2017-03-30 11:23:05
  • 936

Android自定义控件之圆形进度条ImageView

自己开发的一个圆形有百分比显示的进度条,代码如下: package com.wangran.beautiful_girl_show.view; import com.wangran.beautifu...
  • xiadik
  • xiadik
  • 2014-12-01 15:43:04
  • 1591

圆弧矩形进度条,可用于在layout或者imageview外层实现进度的显示(改良android-square-progressbar)

在棋牌游戏开发过程中遇到了这样的一个需求: 需要在一个LAYOUT层外边实现进度的显示实现时钟的功能。 在github上面搜到了android-square-progressbar这个项目,可实现...
  • zmforever
  • zmforever
  • 2015-07-28 17:41:46
  • 680

带时间进度条的Flash+Xml焦点图代码

  • 2010年03月16日 12:08
  • 577KB
  • 下载

Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

我们的Glide系列文章终于要进入收尾篇了。从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久。在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包括...
  • sinyu890807
  • sinyu890807
  • 2017-10-26 18:32:02
  • 7608

android ImageView网络图片加载、动态设置尺寸、圆角(绝对好用)

  • 2017年01月01日 23:21
  • 2KB
  • 下载

android ImageView动态设置尺寸、圆角(绝对好用)

  • 2017年01月02日 00:06
  • 2KB
  • 下载
收藏助手
不良信息举报
您举报文章:Android 图片加载带进度条的ImageView
举报原因:
原因补充:

(最多只允许输入30个字)