Android下简单2D图像绘制
2013-10-20 11:25
316 查看
package com.vekaco.runabledraw;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.View;
public class MainActivity extends Activity {
// private float initX = 0;
// private float initY=0;
private float changeX1 = 5;
private float changeX2 = 7;
private float initLeft1 = 0;
private float initRight1 = 60;
private float initLeft2 = 0;
private float initRight2 = 60;
private int windowWidth;
// private int windowHeight;
private Handler handler;
private boolean isRunning = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myview = new MyView(this);
DisplayMetrics window = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(window);
windowWidth = window.widthPixels;
setContentView(myview);
}
private class MyView extends View implements Runnable {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
handler = new Handler();
new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(initLeft1, 10, initRight1, 100, paint);
paint.setColor(Color.RED);
canvas.drawRect(initLeft2, 110, initRight2, 200, paint);
}
@Override
public void run() {
// TODO Auto-generated method stub
while (isRunning) {
initLeft1 += changeX1;
initRight1 += changeX1;
initLeft2 += changeX2;
initRight2 += changeX2;
if ((int) initLeft1 > windowWidth) {
initRight1 = 0;
initLeft1 = -60;
}
if ((int) initLeft2 > windowWidth) {
initRight2 = 0;
initLeft2 = -60;
}
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
invalidate();
}
});
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
}
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.View;
public class MainActivity extends Activity {
// private float initX = 0;
// private float initY=0;
private float changeX1 = 5;
private float changeX2 = 7;
private float initLeft1 = 0;
private float initRight1 = 60;
private float initLeft2 = 0;
private float initRight2 = 60;
private int windowWidth;
// private int windowHeight;
private Handler handler;
private boolean isRunning = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myview = new MyView(this);
DisplayMetrics window = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(window);
windowWidth = window.widthPixels;
setContentView(myview);
}
private class MyView extends View implements Runnable {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
handler = new Handler();
new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(initLeft1, 10, initRight1, 100, paint);
paint.setColor(Color.RED);
canvas.drawRect(initLeft2, 110, initRight2, 200, paint);
}
@Override
public void run() {
// TODO Auto-generated method stub
while (isRunning) {
initLeft1 += changeX1;
initRight1 += changeX1;
initLeft2 += changeX2;
initRight2 += changeX2;
if ((int) initLeft1 > windowWidth) {
initRight1 = 0;
initLeft1 = -60;
}
if ((int) initLeft2 > windowWidth) {
initRight2 = 0;
initLeft2 = -60;
}
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
invalidate();
}
});
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
}
相关文章推荐
- android 2D图像的绘制
- 第51章、绘制简单图形(从零开始学Android)
- android图像绘制(三)画布刷屏问题记录
- Quartz2D简单绘制之圆角矩形
- Android使用Canvas绘制2D图形基础
- Quart 2D 绘制图形简单总结(转)
- IOS之Quartz2D绘图1.简单几何图形绘制
- android图像绘制(七)——ClipRect局部绘图,切割原图绘制
- 处理2D图像和纹理——使用SpriteBatch类显示2D图像:加载和绘制图像
- 【Android游戏开发之一】:设置全屏以及简单的图形绘制
- android图像绘制获取本地图片或拍照图片等图片资源
- 【Android Canvas系列】使用canvas绘制简单的clock
- Plplot绘制简单2D函数图
- Android中绘制简单几何图形和路径Path
- Android游戏开发---2D游戏中背景的绘制
- 简单的android折线图绘制
- android 用canvas 绘制简单圆形时钟
- Android OpenGL 纹理绘制图像---JAVA实现
- [Qt教程] 第11篇 2D绘图(一)绘制简单图形
- Android L(5.0)源码之图形与图像处理之简单图片——Bitmap