[Android自定义控件]带加载进度条的ImageView
2016-09-02 14:58
260 查看
很多时候图片上传的时候需要一个有加载效果的ImageView,其实实现起来也非常简单,下面是这个控件的demo
实现:
其实也没什么要注意的地方,算是最简单的自定义控件之一了。有需要的可以改一改。
实现:
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(); } }
其实也没什么要注意的地方,算是最简单的自定义控件之一了。有需要的可以改一改。
相关文章推荐
- Android自定义波浪加载圆形进度条——(自定义控件 一)
- android 自定义控件4 - 自定义view(加载进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- (Android实战)ProgressDialog+Thread实现弹出进度条数据异步加载(配有效果图)
- Android自定义控件实战仿新浪微博QQ好友动态滑到底部自动加载
- Android缓冲进度条或加载进度条
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android自定义控件:进度条的四种实现方式(Progress Wheel的解析)(源码 + Demo)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android之加载图片时自定义进度条
- Android自定义控件(一) 下拉刷新,上拉分页加载更多(支持ListView, GridView, ScrollView)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- android:通过URL加载ImageView
- android 动态加载自定义控件
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- 【转】Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- 三种实现android加载进度条的动画效果
- Android自定义控件实战——仿新浪微博、QQ好友动态滑到底部自动加载