package login;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import fusion.FusionField;
/**
*
* <一句话功能简述>
*
* @author 0000005487
* @version [版本号, 2012-8-3]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class ProgressTitleBar extends View
{
private Context mContext;
private Paint mPaint;
private WindowManager mWindowManager;
private String mText;
private int mWidth;
private int mHeight;
private int curCount;
private int totalCount;
private int progressValue;
public ProgressTitleBar(Context context)
{
super(context);
this.mContext = context;
mWindowManager = (WindowManager)mContext.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
mPaint = new Paint();
}
public void addToWindow()
{
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT | WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
// params.type = WindowManager.LayoutParams.FIRST_SUB_WINDOW;
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params.width = FusionField.screenWidth != 0 ? FusionField.screenWidth : 1280;
params.height = 20;
params.alpha = 0.6f;
params.gravity = Gravity.LEFT | Gravity.BOTTOM;
//以屏幕左上角为原点,设置x、y初始值
params.x = 0;
params.y = mHeight;
mWindowManager.addView(this, params);
}
public void removeView()
{
mWindowManager.removeView(this);
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
if (totalCount > 0)
{
canvas.drawColor(0x88000000);
if (progressValue > 0 && progressValue <= 100)
{
mPaint.setColor(0x8800FF00);
canvas.drawRect(0, 0, mWidth * (progressValue / 100f), mHeight, mPaint);
}
mPaint.setColor(0xFFFFFFFF);
mPaint.measureText(mText);
canvas.drawText(mText, (mWidth - mPaint.measureText(mText)) / 2, 18, mPaint);
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
mWidth = FusionField.screenWidth != 0 ? FusionField.screenWidth : 1280;
mHeight = 20;
setMeasuredDimension(mWidth, mHeight);
}
public void setProgress(int cCount, int tCount, int pValue)
{
this.curCount = cCount < 0 ? 0 : cCount;
this.totalCount = tCount > curCount ? curCount : tCount;
mText = new StringBuffer("正在上传录像").append(curCount).append("/").append(totalCount).toString();
this.progressValue = pValue < 0 ? 0 : pValue > 100 ? 100 : pValue;
this.invalidate();
}
}
使用WindowManager进行progress提示
最新推荐文章于 2021-10-07 09:18:16 发布