安卓開發學習筆記(12)繪製幾何圖形(實例:繪製安卓機器人)

第一步:爲幀佈局管理器設置id屬性

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/frameLayout"
    tools:context=".MainActivity">
</FrameLayout>

 

第二步:繪製圖形,自定義View

創建MyView.java

package com.example.android;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.view.View;

public class MyView extends View {
    public MyView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //繪製機器人
        Paint paint=new Paint();//創建一個畫筆
        paint.setAntiAlias(true);//採用抗鋸齒功能,可以讓線更圓滑
        paint.setColor(0xFFA4C739);//設置畫筆顏色爲綠色
        //繪製機器人的頭
        RectF rectF=new RectF(10,10,100,100);//定義外輪廓矩形
        rectF.offset(90,20);
        canvas.drawArc(rectF,-10,-160,false,paint);//繪製弧
        //繪製機器人的眼睛
        paint.setColor(0xFFFFFFFF);//設置畫筆爲白色
        canvas.drawCircle(165,53,4,paint);
        canvas.drawCircle(125,53,4,paint);
        //繪製天線
        paint.setColor(0xFFA4C739);
        paint.setStrokeWidth(2);//設置筆觸寬度
        canvas.drawLine(110,15,125,35,paint);
        canvas.drawLine(180,15,165,35,paint);
        //繪製身體
        canvas.drawRect(100,75,190,150,paint);//繪製矩形
        //繪製圓角矩形
        RectF rectF_body=new RectF(100,140,190,160);
        canvas.drawRoundRect(rectF_body,10,10,paint);
        //繪製胳膊
        RectF rectF_arm=new RectF(75,75,95,140);
        canvas.drawRoundRect(rectF_arm,10,10,paint);
        rectF_arm.offset(120,0);
        canvas.drawRoundRect(rectF_arm,10,10,paint);
        //繪製腿
        RectF rectF_leg=new RectF(115,150,135,200);
        canvas.drawRoundRect(rectF_leg,10,10,paint);
        rectF_leg.offset(40,0);
        canvas.drawRoundRect(rectF_leg,10,10,paint);
    }
}

 

第三步:將自定義View添加到佈局管理器中

MainActivity.java

package com.example.android;

import android.os.Bundle;
import android.widget.FrameLayout;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FrameLayout frameLayout=findViewById(R.id.frameLayout);
        frameLayout.addView(new MyView(this));//將自定義View添加到佈局管理器中
    }
}

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章