android 机器人绘制,画个android机器人
定义一个画图的接口:
package com.ken.drawable;
import android.graphics.Canvas;
public interface drawGraphics {
public void draw(Canvas canvas);
}
画圆:
package com.ken.drawable;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
public class DrawCircle implements drawGraphics {
private Paint paint= null;
private Paint paint_eye= null;
public DrawCircle(){
paint= new Paint();
paint_eye= new Paint();
}
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
//绘制圆形(圆心x,圆心y,半径r,画笔p)
paint_eye.setAntiAlias(true);
paint.setAntiAlias(true);
RectF rectF = new RectF(120,60,370,240);
paint_eye.setColor(Color.WHITE);
paint.setColor(Color.GREEN);
canvas.drawCircle(190, 110, 18, paint_eye);
canvas.drawCircle(300, 110, 18, paint_eye);
canvas.drawArc(rectF, 180, 180,true, paint);
}
}
画直线:
package com.ken.drawable;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
public class DrawLine implements drawGraphics {
private Paint paint= null;
public DrawLine(){
paint= new Paint();
}
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
paint.setAntiAlias(true);
//绘制直线
paint.setColor(Color.GREEN);
//设置线条粗细
paint.setStrokeWidth(12);
canvas.drawLine(120,40,170,90, paint);
canvas.drawLine(320,90,370,40, paint);
}
}
画矩形:
package com.ken.drawable;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
public class DrawRect implements drawGraphics {
private Paint paint= null;
public DrawRect(){
paint= new Paint();
}
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
//定义圆角矩形对象
RectF rectF1 = new RectF(120,170,370,500);
RectF rectF2 = new RectF(40,150,90,400);
RectF rectF3 = new RectF(390,150,440,400);
RectF rectF4 = new RectF(140,520,200,650);
RectF rectF5 = new RectF(290,520,350,650);
paint.setAntiAlias(true);
//设置画笔颜色为BLUE
paint.setColor(Color.GREEN);
//在画布上绘制圆角矩形/圆弧/直线
canvas.drawRoundRect(rectF1, 20, 20, paint);
canvas.drawRoundRect(rectF2, 20, 20, paint);
canvas.drawRoundRect(rectF3, 20, 20, paint);
canvas.drawRoundRect(rectF4, 20, 20, paint);
canvas.drawRoundRect(rectF5, 20, 20, paint);
}
}
显示的类:
package com.ken.drawable;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
public class GameView extends View implements Runnable {
private Paint mPaint=null;
private drawGraphics mdrawGraphics=null;
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
//构建对象
mPaint=new Paint();
//开启线程
new Thread(this).start();
}
public void onDraw(Canvas canvas){
super.onDraw(canvas);
//设置画布为黑色
//canvas.drawColor(Color.BLACK);
//消除锯齿
mPaint.setAntiAlias(true);
//设置图形为空心
mPaint.setStyle(Paint.Style.STROKE);
//绘制空心几何图形
mdrawGraphics=new DrawCircle();
mdrawGraphics.draw(canvas);
mdrawGraphics=new DrawLine();
mdrawGraphics.draw(canvas);
mdrawGraphics=new DrawRect();
mdrawGraphics.draw(canvas);
}
public void run() {
// TODO Auto-generated method stub
while(!Thread.currentThread().isInterrupted()) {
try{
Thread.sleep(1000);
} catch(InterruptedException e) {
// TODO: handle exception
Thread.currentThread().interrupt();
}
//使用postInvalidate 可以直接在线程中更新界面
postInvalidate();
}
}
}
主类:
package com.ken.drawable;
import android.app.Activity;
import android.os.Bundle;
public class GameStart extends Activity {
private GameView mGameView= null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.mGameView= new GameView(this);
setContentView(mGameView);
}
}
android 机器人绘制,画个android机器人相关推荐
- android 自定义view画表格,Android自定义View实现课程表表格
自己闲下来时间写的一个课表控件,使用的自定义LinearLayout,里面View都是用代码实现的,最终效果如下图,写的可能有问题希望多多指点 创建一个自定义LinearLayout 控件用来装载课程 ...
- 蜡笔小新里的钢达姆机器人怎么画_写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体...
据江苏公共·新闻频道<新闻360>报道:新学期开学,各种各样的课后作业成了孩子和家长关注的话题.前不久,一条"孩子购买代写作业机器人,被家长发现"的新闻,引发了强烈争议 ...
- android view绘制速度,关于android ui的优化 view 的绘制速度
关于如何优化activity的启动速度, view 的绘制速度, 可参考这个sdk里的文档. android-sdk-windows-1.5_r1/docs/resources/articles/wi ...
- android studio绘制统计图,基于Android Studio的饼图账单的设计与开发_毕业论文.doc
基于Android Studio的饼图账单的设计与开发_毕业论文 Anhui Vocactional & Technical College of Industry & Trade 毕 ...
- Android布局怎么画图形,Android开发者的图形化布局
图形化布局编辑器允许你通过拖放来创建UI.在早期版本的ADT中,图形化布局编辑器并不是很有帮助,幸运的是,最新版本非常强大,可以用来创建复杂的包含有复合组件以及动画的布局. (1)Configurat ...
- Android Canvas 绘制基本形状 Android自定义View(七)
1 缩略图 2 绘制颜色 // 传入一个Color类的常量参数来设置画布颜色// 绘制蓝色canvas.drawColor(Color.BLUE); 3 绘制点(drawPoint) 在某个坐标处绘制 ...
- android 重新绘制界面,基于Android Q:华为最新EMUI10界面曝光,图标重绘继续优化...
原标题:基于Android Q:华为最新EMUI10界面曝光,图标重绘继续优化 在手机的深度定制系统里,华为EMUI应该是知名度非常高的一个.重新设计的外观和强化的功能让华为手机的使用体验得到增强,很 ...
- android 实现绘制不规则图形,Android贝塞尔曲线实现填充不规则图形并随手指运动...
贝塞尔曲线: 贝塞尔曲线于1962,由法国工程师皮埃尔·贝塞尔所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由 Paul de Casteljau 于 1959 年运用 de Ca ...
- android 机器人动画,画一个可以动的Android 小机器人
上次我们画了一个哆啦A梦,可惜这个哆啦A梦并不会动,今天我们就来画一个可以动的Android小人.这次,我们全程使用C3高级. image.png 好,废话不多说,我们直接上代码. Android 初 ...
最新文章
- C、C++语言容易出错的几个地方
- 提升win双屏体验_海信双屏A6L评测,在自由阅读中植入护眼水墨屏
- XMind助你快速解决问题
- 在 CentOS7 上安装 MySQL5.7
- 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置
- 关于java包_关于Java包
- ajaxfileupload 返回值_ajaxFileUpload上传文件返回json无法解析
- 函数式编程让你忘记设计模式
- vue function (i)第一次点击不执行_vue下$nextTick及原理浅析
- 我们如何体验 Line 的生活方式
- EJB3.0学习笔记---MDBbean--区分P2P模式和Pub/Sub模式的示例
- Looper,Handler, MessageQueue
- php 上传图片并生成缩略图,php 上传图片并生成缩略图
- 程序员因太过耿直,致苹果官网出现bug......
- 杭电3233(杂题)
- LoadRunner11代理在Win10操作系统启动不起来,或者报错:该内存不能为written
- Java对象转为Json格式的String
- 宏与宏病毒——学习笔记
- 联想蓝牙没有连接的地方计算机,联想笔记本连不上蓝牙怎么办 笔记本连接蓝牙耳机没声音解决方法...
- 四、共阳数码管的动态显示
热门文章
- tlp导致linux运行缓慢,Ubuntu 18.04安装tlp实现电源管理,解决风扇狂转问题
- SLMi334兼容TLP5214 一款兼容光耦带保护功能单通道隔离IGBT栅极驱动器
- android git上开源的项目收藏
- 了解视图dm_os_performance_counters的cntr_type含义
- 英雄联盟手游服务器维护中,英雄联盟手游Server is currently under maintenance解决方法...
- python 编写获取阿里巴巴行业分类数据代码
- Unity 修改场景中人型骨骼模型的骨骼旋转角度
- Upload上传@20210412
- PHP学习笔记:环境变量
- 串口、终端应用程序 API termios