用TextView 不就行了吗,用相对布局,画一条线,上面的加点文字来回跑
解决方案 »
- 《Android开发视频教学》
- 为什么我在解析的网站的信息在添加数据库的时候只添加一条信息。。。。
- 求教android手机坐标系问题
- android模拟器,观看DDMS的log信息
- 哪位知道用于Android开发的3D模型读取器?能否推荐一下?
- adt22.6每次创建一个工程都出现两个怎么解决
- Android在调用系统相机拍照后,点确定无法返回前一个Activity,而是重复在调用相机!
- adb connect 报错
- Android 音乐播放速度调节的实现
- 我把.mp3文件放在drawable-hdpi里,怎么获取到他的位子??
- 弹出让用户授权窗口后,如何得知用户允许授权
- 如何打开一个APK文件内的Activit
定义一个Handler,
在onDraw()里,根据position的值画圆点,画完一次,发送一个delay的Message,在Handler里面接收这个Message,并且增加position的值,然后调用invalidate(),会触发调用onDraw()。这时候onDraw()里的position的值是已经增加的了,那你画圆点的时候,视觉上就是圆点向前动了一下。
delay的值自己把握,小一点,圆点动的快一点,大一点,圆点动的慢一点
比如说你这一秒画一个亮点,画完了,发一个delay Message,然后过一秒,Handler收到这个Message,调整一下位置,调用invalidate(),触发调用onDraw()。这时,画两个亮点。位置就是上面调整过后的。重新调用onDraw()后,是重新画一遍的,上一秒在onDraw()里画的东西是会被抹掉的。所以上面的效果就是,这一秒亮一个点,下一秒亮两个点,下一秒亮三个点
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.View;public class DrawActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); MyView mv = new MyView(this);
setContentView(mv);
} public class MyView extends View {
private int p; MyView(final Context context) {
super(context);
new Thread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
while (true) {
if(p>500){
p=0;
}
p += 20;
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Activity a = (Activity) context;
a.runOnUiThread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
MyView.this.invalidate();
}
});
} }
}).start();
} @Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas); // 首先定义一个paint
Paint paint = new Paint();
// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.BLUE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 100, 30), paint);
// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText("Hello", 10, 50, paint);
// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
canvas.drawBitmap(bitmap, 10 + p, 60, paint);
} }
}
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.View;public class DrawActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); MyView mv = new MyView(this);
setContentView(mv);
} public class MyView extends View {
private int p;
private int bw, bh;
private Rect r; MyView(final Context context) {
super(context);
new Thread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
while (true) {
if (p > 500) {
p = 0;
}
p += 60;
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Activity a = (Activity) context;
a.runOnUiThread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
MyView.this.invalidate(r);
}
});
} }
}).start();
} @Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas); // 首先定义一个paint
Paint paint = new Paint();
// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.BLUE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 100, 30), paint);
// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText("Hello", 10, 50, paint);
// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
bw = bitmap.getWidth();
bh = bitmap.getHeight();
r = new Rect(p + 60, 00, p + 60 + bw, 500);
canvas.drawBitmap(bitmap, p, 60, paint);
} }
}或者你要的是这种效果