国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android繪制機器人小實例

2019-12-12 01:24:05
字體:
來源:轉載
供稿:網友

本文實例通過前面學過的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);   }  }   } 

 畫出的效果如圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 哈密市| 溧水县| 扶余县| 沙田区| 舒兰市| 日照市| 柳江县| 泰宁县| 原平市| 甘孜县| 宜君县| 龙泉市| 桓台县| 东乌| 贡嘎县| 石狮市| 定西市| 桂林市| 安塞县| 宽城| 浦城县| 龙口市| 德令哈市| 六安市| 美姑县| 湖口县| 门源| 平舆县| 兴国县| 南川市| 桦南县| 鸡泽县| 汝城县| 贡山| 乌恰县| 高密市| 兰溪市| 桂阳县| 平凉市| 扶绥县| 枣阳市|