- 论坛徽章:
- 0
|
前几天完成了一个定制版本的流量监控模块,主要是重写了HttpURLConnection一块并且装饰了HttpClient这块,接口跟JDK和apache的是一样的。主要是一个界面显示的一块让人发疯。不过结果还好。private class NoticeView extends AbstractNoticeView {
private Paint mRectPaint; private Paint mCurPaint; private Paint mDatePaint; private RectF rect;
public NoticeView(Context ctx) { super(ctx); // setBackgroundColor(Color.RED); mRectPaint = new Paint(); mRectPaint.setAntiAlias(true); mRectPaint.setTextSize(11); mRectPaint.setARGB(125, 125, 125, 125);
mCurPaint = new Paint(); mCurPaint.setAntiAlias(true); mCurPaint.setTextSize(11); mCurPaint.setARGB(255, 0, 255, 0);
mDatePaint = new Paint(); mDatePaint.setAntiAlias(true); mDatePaint.setTextSize(11); mDatePaint.setARGB(255, 255, 255, 255);
this.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
setOnTouchListener(mOnTouchListener); }
@Override public void onDraw(Canvas canvas) { super.onDraw(canvas);
String showInfo = getDateCountInfo(); // float x = (getWidth() - mCurPaint.measureText(showInfo)) / 2; float x = 12.0f; float y = (getPaddingTop() - mCurPaint.ascent()); rect = new RectF((int) x - 10, (int) y - 5, (int) x + 45, (int) y + 50);
canvas.drawRoundRect(rect, 10, 10, mRectPaint); canvas.drawText(getCurrentCountInfo(), x + 5, y + 15, mCurPaint); canvas.drawLine(x - 10, y + 26, x + 40, y + 26, mDatePaint); canvas.drawText(showInfo, x + 5, y + 45, mDatePaint); }
@Override public void setVisibility(boolean b) { if (b == visibility) return; visibility = b; if (b) { setVisibility(View.VISIBLE); } else { setVisibility(View.INVISIBLE); } updateNotice(); }
@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(getPaddingLeft() + getPaddingRight() + 60, getPaddingTop() + getPaddingBottom() + 60); }
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99624/showart_2054733.html |
|