Android一个画图的例子,希望对画图初学者有帮助
2011-10-13 09:29
447 查看
1.Activity
package com.fit.shap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private boolean autoFlag=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout root=(LinearLayout) findViewById(R.id.root);
final MyShap view=new MyShap(this);
root.addView(view);
Button line=(Button) findViewById(R.id.line);
line.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(1);
view.invalidate();
}
});
Button squre=(Button) findViewById(R.id.squre);
squre.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(2);
view.invalidate();
}
});
Button text=(Button) findViewById(R.id.text);
text.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(3);
view.invalidate();
}
});
Button auto=(Button) findViewById(R.id.auto);
auto.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(autoFlag){
view.stopDraw();
}else{
view.runDraw();
}
autoFlag=!autoFlag;
}
});
}
}
2.画图过程
package com.fit.shap;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class MyShap extends View {
private int flag=-1;
private Thread auto=null;
private boolean autoFlag=false;
public MyShap(Context context) {
super(context);
}
public void setFlag(int f){
this.flag=f;
}
public void runDraw(){
autoFlag=true;
auto=new Thread(){
@Override
public void run() {
int f=0;
while(autoFlag){
f++;
if(f>3){
f=1;
}
setFlag(f);
postInvalidate();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
auto.start();
}
public void stopDraw(){
autoFlag=false;
}
@Override
protected void onDraw(Canvas canvas) {
//定义一个画笔
Paint paint=new Paint();
paint.setAntiAlias(true);
//画笔颜色
paint.setColor(Color.GRAY);
//画板
canvas.drawRect(new Rect(0,0,320,320), paint);
switch(flag){
case 1:
paint.setColor(Color.YELLOW);
canvas.drawLine(20, 20, 240,250, paint);
break;
case 2:
paint.setColor(Color.GREEN);
canvas.drawRect(new Rect(30,30, 240,240), paint);
break;
case 3:
paint.setColor(Color.BLUE);
canvas.drawText("这是我的文本!!",20,200, paint);
break;
}
}
}
package com.fit.shap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private boolean autoFlag=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout root=(LinearLayout) findViewById(R.id.root);
final MyShap view=new MyShap(this);
root.addView(view);
Button line=(Button) findViewById(R.id.line);
line.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(1);
view.invalidate();
}
});
Button squre=(Button) findViewById(R.id.squre);
squre.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(2);
view.invalidate();
}
});
Button text=(Button) findViewById(R.id.text);
text.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
view.setFlag(3);
view.invalidate();
}
});
Button auto=(Button) findViewById(R.id.auto);
auto.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(autoFlag){
view.stopDraw();
}else{
view.runDraw();
}
autoFlag=!autoFlag;
}
});
}
}
2.画图过程
package com.fit.shap;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class MyShap extends View {
private int flag=-1;
private Thread auto=null;
private boolean autoFlag=false;
public MyShap(Context context) {
super(context);
}
public void setFlag(int f){
this.flag=f;
}
public void runDraw(){
autoFlag=true;
auto=new Thread(){
@Override
public void run() {
int f=0;
while(autoFlag){
f++;
if(f>3){
f=1;
}
setFlag(f);
postInvalidate();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
auto.start();
}
public void stopDraw(){
autoFlag=false;
}
@Override
protected void onDraw(Canvas canvas) {
//定义一个画笔
Paint paint=new Paint();
paint.setAntiAlias(true);
//画笔颜色
paint.setColor(Color.GRAY);
//画板
canvas.drawRect(new Rect(0,0,320,320), paint);
switch(flag){
case 1:
paint.setColor(Color.YELLOW);
canvas.drawLine(20, 20, 240,250, paint);
break;
case 2:
paint.setColor(Color.GREEN);
canvas.drawRect(new Rect(30,30, 240,240), paint);
break;
case 3:
paint.setColor(Color.BLUE);
canvas.drawText("这是我的文本!!",20,200, paint);
break;
}
}
}
相关文章推荐
- 今天给大家分享一个购物车的例子,希望对大家有所帮助
- 贡献一个Android系统中DS18B20驱动程序,希望对大家有帮助
- 通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助
- 再次免费发一个Qt教程,希望能帮助各位Qt初学者快速入门
- Android一个小球弹跳的例子,希望对大家有用
- Android一个小球弹跳的例子,希望对大家有用
- Android 初学者入门(一个最简单的应用程序)
- android 支持分组和联系人展示的一个小例子
- 一个Android Socket的例子
- android使用Broadcast的一个例子
- 作为一个老师,我也把我回答的一些问题在这里共享一下,希望有所帮助
- python for android : 一个单选列表的天气预报例子
- Android 驱动和系统开发 1. 一个简单的例子(原创)
- Android小例子(点击一个按钮,传递数据给另一个页面)
- idea搭建maven项目(spring + spring MVC + hibernate),希望对于初学者有帮助。
- Android小例子(点击一个按钮,传递数据给另一个页面)
- 一个帮助我们理解for循环的好例子
- [初试Android]Service+跨线程操作GUI的一个小例子
- Android 属性动画监听事件与一个菜单的例子