Android绘制机器人小实例

本文实例通过前面学过的Paint、Canvas等2D绘画技术来实现在手机屏幕上绘制Android机器人。

具体代码实现和效果:

用来显示自定义的绘图类的布局文件
res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:id="@+id/frameLayout1"
 android:orientation="vertical"
 > 

</FrameLayout>

打开MainActivity,在文件中创建名为MyView的内部类,继承android.view.View类,并添加构造方法和重写onDraw(Canvas canvas)方法,在里面进行作图:

MainActivity:

package com.example.test; 

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout; 

public class MainActivity extends Activity { 

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main); 

  //获取布局文件中添加的帧布局管理器
  FrameLayout ll=(FrameLayout)findViewById(R.id.frameLayout1);
  //将自定义的MyView视图添加到帧布局
  ll.addView(new MyView(this));
 } 

 public class MyView extends View{ 

  public MyView(Context context) {
   super(context);
   // TODO Auto-generated constructor stub
  } 

  @Override
  protected void onDraw(Canvas canvas) {
   Paint paint=new Paint();
   paint.setAntiAlias(true);//使用抗锯齿功能
   paint.setColor(Color.GREEN);
   //绘制机器人的头
   RectF rectf_head=new RectF(10,10,100,100);
   rectf_head.offset(100, 20);//设置在X轴上偏移100像素,Y轴上偏移20像素
   canvas.drawArc(rectf_head, -10, -160, false, paint);//绘制弧
   /*.drawArc参数1:圆的范围大小;参数2:起始角度 ;
   参数3:圆心角角度,360为圆,180为半圆;
   参数4:中心 ;参数5:画笔Paint;*/
   //绘制眼睛
   paint.setColor(Color.WHITE);
   canvas.drawCircle(135, 53, 4, paint);//绘制圆
   canvas.drawCircle(175, 53, 4, paint);//绘制圆
   paint.setColor(Color.GREEN);
   //绘制天线
   paint.setStrokeWidth(2);//设置触笔的宽度
   canvas.drawLine(120, 15, 135, 35, paint);//绘制线
   canvas.drawLine(190, 15, 175, 35, paint);//绘制线
   //绘制身体
   canvas.drawRect(110,75,200,150, paint);//绘制矩形
   RectF rectf_body=new RectF(110,140,200,160);
   canvas.drawRoundRect(rectf_body, 10, 10, paint);//绘制圆角矩形
   /*参数说明
   rect:RectF对象。
   rx:x方向上的圆角半径。
   ry:y方向上的圆角半径。
   paint:绘制时所使用的画笔。*/ 

   //绘制胳膊
   RectF rectf_arm=new RectF(85,75,105,140);
   canvas.drawRoundRect(rectf_arm, 10, 10, paint);
   rectf_arm.offset(120, 0);//设置在X轴上偏移120像素
   canvas.drawRoundRect(rectf_arm, 10, 10, paint);
   //绘制腿
   RectF rectf_leg=new RectF(125,150,145,200);
   canvas.drawRoundRect(rectf_leg, 10, 10, paint);
   rectf_leg.offset(40, 0);//设置在X轴上偏移40像素
   canvas.drawRoundRect(rectf_leg, 10, 10, paint);
   super.onDraw(canvas);
  }
 } 

} 

画出的效果如图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 安卓(Android)聊天机器人实现代码分享

    今天看到一个ios写的图灵机器人,直接去官网(http://www.tuling123.com/openapi/)看了下API接入,太简单了,就一个get请求~于是乎,写了一个Android版本的机器人,没什么技术含量,但是挺好玩的~刚好昨晚看了自己喜欢的秦时明月,嘿嘿,小貔貅,就是我的机器人宠物啦~ 这是一个安卓智能聊天机器人的源码,采用了仿微信的风格设计,调用的是图灵机器人的API,能够实现智能聊天.讲故事.讲笑话.查天气.查公交等丰富的功能. 先给大家展示效果图: 下面是代码片段,想要源码

  • Android绘制机器人小实例

    本文实例通过前面学过的Paint.Canvas等2D绘画技术来实现在手机屏幕上绘制Android机器人. 具体代码实现和效果: 用来显示自定义的绘图类的布局文件 res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xml

  • Android绘制验证码的实例代码

    在前面仿华为加载动画.仿网易音乐听歌识曲-麦克风动画中,我们通过绘图的基础知识完成了简单的绘制.在本例中,我们将绘制常见的验证码. 一.效果图 二.知识点与思路分析 通过上面的效果图观察,我们可以看到里面有绘制的随机线条,随机绘制的验证码. 绘制线条,直线或曲线 绘制文本,生成的验证码文本的绘制 绘制圆点. 三.代码编写 /** * Created by Iflytek_dsw on 2017/7/3. */ public class IdentifyCodeUtil { private sta

  • android绘制几何图形的实例代码

    本文实例为大家分享了android绘制几何图形展示的具体代码,供大家参考,具体内容如下 效果图: 代码(仅绘制类,不可直接运行): public class MyView extends View { public MyView(Context context, AttributeSet set) { super(context, set); } @Override // 重写该方法,进行绘图 protected void onDraw(Canvas canvas) { super.onDraw

  • Android 绘制多级树形选择列表实例代码

    一.概述 前段时间有个项目的需要在Android端显示一个复选的多层树形控件,主要展示一个公司的组织架构,类似总部下面有各个部门,部门之下是组和员工等.另外需要加上展开与回收部门详情.关闭部分已开展的布局.勾选等功能. 效果图如下: 二.思路分析 毫无疑问,对于这种数据可能达到几千几万行的列表视图,我们需要选择recyclerview等具有回收item功能的控件,因此Item的状态保持放在Model中而不是View中. 由于原始数据是树形结构的,我们需要先将树形结构转换为列表数据,类似根结点 -

  • Android shape 绘制图形的实例详解

    Android shape 绘制图形 Android 绘制图形可以使用shape也可以使用自定义控件的方式,这里我们说下shape的方式去实现. 在绘制图形之前,我们先来了解下shape的几个属性. shape /* * 线行 圆形 矩形 / android:shape="line" android:shape="oval" android:shape="rectangle" size 图形的大小 <size android:height=

  • Android 实现扫雷小游戏实例代码

    Android 实现扫雷小游戏实例 最近学习Android 应用编程,抽空做个小应用,大家熟悉的扫雷应用,练手用, 以下是实现代码: MainActivity 类 public class MainActivity extends Activity implements OnClickListener, OnLongClickListener { // 最外层布局 LinearLayout textviews; LinearLayout buttons; int[][] map = new in

  • 绘制微信小程序验证码功能的实例代码

    1.在 utils 文件中新建 mcaptcha.js 文件,写入以下代码: module.exports = class Mcaptcha { //画板 constructor(options) { this.options = options; this.fontSize = options.height * 3 / 4; this.init(); this.refresh(this.options.code); } init() { this.ctx = wx.createCanvasCo

  • Android 绘制太极图实例详解

    Android 绘制太极图 绘制一个太极图实现代码: package com.jackie.taijicircle; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet;

  • Android植物大战僵尸小游戏

    Android植物大战僵尸小游戏全部内容如下: 相关下载:Android植物大战僵尸小游戏 具体代码如下所示: package com.example.liu.mygame; import com.example.liu.mygame.global.Config; import com.example.liu.mygame.tools.DeviceTools; import com.example.liu.mygame.view.GameView; import android.os.Bundl

  • Android绘制双折线图的方法

    本文实例为大家分享了Android绘制双折线图的具体代码,供大家参考,具体内容如下 自定义View实现双折线图,可点击,点击后带标签描述,暂未实现拖动的功能,实现效果如下: 代码如下: 首先,自定义布局属性: <declare-styleable name="LineChart">     <!--type2.LineChart(双折线图)-->     <attr name="maxYValue" format="integ

随机推荐