仿主流浏览器中,如UC中 带进度条背景的输入框 EditText,ucedittext,android 中 仿
分享于 点击 27957 次 点评:129
仿主流浏览器中,如UC中 带进度条背景的输入框 EditText,ucedittext,android 中 仿
android 中 仿主流浏览器中,如UC中 带进度条背景的输入框 EditText
package com.lookup;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.util.Log;import android.widget.EditText;public class ExtEditText extends EditText { private String tag = "ExtEditText"; private Handler handler; private Paint paint = null; private int process = 0; public ExtEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(); } public ExtEditText(Context context, AttributeSet attrs) { super(context, attrs); initView(); } public ExtEditText(Context context) { super(context); initView(); } private void initView() { paint = new Paint(Paint.ANTI_ALIAS_FLAG); handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { process = msg.what; Log.d(tag, "process :" + process); return true; } }); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int height = getMeasuredHeight(); int width = getMeasuredWidth(); if (process < 100) { paint.setColor(Color.GREEN); paint.setAlpha(100); canvas.drawRect(0, 0, process * width / 100, height, paint); } else { paint.setAlpha(0); canvas.drawRect(0, 0, width, height, paint); } invalidate(); }; /** * * @param process * 0 -100 之间的数值 */ public void updateProcess(int process) { handler.sendEmptyMessageDelayed(process, 1000); }}//该片段来自于http://byrx.net
用户点评