简介:
view是Android上面图形绘制和显示的最基本的空间,所有的可见的界面,都是通过View扩展绘制出来的。在本次试验中,将绘制一个基本的可见的,并且,可以响应屏幕的触动的例子。
一、重点方法介绍
1、invalidate
重新绘制整个View。如果,View是可见的,将会调用onDraw方法,但是,这个方法必须和UI在同一线程中。
2、postInvalidate
跟上面方法的意思一样,但是主要应用在不同的UI的线程中。
实现:
public class ViewC extends View
{
int miCount = 0;
int y = 0;
int x=0;
public ViewC(Context context)
{
super(context);
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
while (!Thread.interrupted()) {
postInvalidate();
}
}
}.start();
}
//
//绘图处理
public void onDraw(Canvas canvas)
{
if (miCount < 100)
{
miCount++;
}
else
{
miCount = 0;
}
//绘图
Paint mPaint = new Paint();
switch (miCount%4)
{
case 0:
mPaint.setColor(Color.BLUE);
break;
case 1:
mPaint.setColor(Color.GREEN);
break;
case 2:
mPaint.setColor(Color.RED);
break;
case 3:
mPaint.setColor(Color.MAGENTA);
break;
default:
mPaint.setColor(Color.WHITE);
break;
}
//绘制矩形--后面我们将详细讲解
canvas.drawRect(x, y, x+100, y+140, mPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
float x_=event.getX();
float y_=event.getY();
System.out.println(x_+" "+y_);
x=(int) x_;
y=(int) y_;
//在同线程中.....
this.invalidate();
return super.onTouchEvent(event);
}
}
效果:
上面的矩形,不停的闪烁,在四种颜色中变化。矩形的左上角位置,更随鼠标而动。
参考:
android Paint属性
View翻译: http://blog.csdn.net/qq282133/article/details/7731831
View翻译:http://blog.csdn.net/qq282133/article/details/7615653