設(shè)置activity_main.xml為幀布局便于畫圖時直接使用位置進(jìn)行繪制
超過十年行業(yè)經(jīng)驗,技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:做網(wǎng)站、網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信平臺小程序開發(fā),微信開發(fā),重慶App定制開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!二 新建java類用于編寫繪圖代碼在mainactivity目錄下新建myview類
三 繼承原有view方法 并設(shè)定畫布public class MyView extends View {public MyView(Context context) {super(context);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onDraw(Canvas canvas) {//編輯畫布類
super.onDraw(canvas);
}
}
四 定義畫筆Paint paint2 = new Paint();//定義畫筆
paint2.setStyle(Paint.Style.FILL);//設(shè)定畫筆類型 fill為填充
paint2.setColor(0xff99ffff);//定義畫筆顏色 34位為透明度 默認(rèn)空為100%透明 ff為完全不透明 最后6位為顏色
Paint paint1 = new Paint();//定義畫筆
paint1.setStyle(Paint.Style.STROKE);//設(shè)定畫筆類型 stroke為描邊
paint1.setColor(0xff663399);//定義畫筆顏色 34位為透明度 默認(rèn)空為100%透明 ff為完全不透明 最后6位為顏色
paint1.setStrokeWidth(20);//定義邊框?qū)挾?/code>
五 繪制圖形
(1)矩形 canvas.drawRect(100,100,400,300,paint1);
//繪制矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
輸出圖形
canvas.drawCircle(250, 600, 150, paint1);
//繪制空心圓 前兩為圓心位置 后一個半徑 最后為使用的畫筆
輸出圖形
canvas.drawOval(100,900,400,1100, paint1);
//繪制空心橢圓 設(shè)定外邊框矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
輸出圖形
//使用路徑法繪制自定義圖形
Path path1 = new Path();
path1.moveTo(250, 1250);//設(shè)定起始點
path1.lineTo(100,1500);//頂點1
path1.lineTo(400,1500);//頂點2
path1.close();//最后一個點與頂點相連
canvas.drawPath(path1, paint1);//繪制空心三角形
輸出圖形
//繪制弧形或者扇形
RectF rectF2 = new RectF(600, 1700, 900, 2000);//定義弧形的外邊框矩形
canvas.drawArc(rectF2,0,225,true, paint1);
RectF rectF3 = new RectF(600, 1200, 900, 1500);//定義弧形的外邊框矩形
canvas.drawArc(rectF3,0,225,false, paint2);
//第一個為外邊框矩形
//第二個為初始方向 0為3點鐘方向 順時針增加 逆時針減少
//第三個為劃過角度 順時針增加 逆時針減少
//第四個為是否連接中心點
//第五個為使用的畫筆類型
輸出圖形
package com.example.paint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.os.Build;
import android.view.View;
import androidx.annotation.RequiresApi;
public class MyView extends View {public MyView(Context context) {super(context);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onDraw(Canvas canvas) {//編輯畫布類
super.onDraw(canvas);
Paint paint2 = new Paint();//定義畫筆
paint2.setStyle(Paint.Style.FILL);//設(shè)定畫筆類型 fill為填充
paint2.setColor(0xff99ffff);//定義畫筆顏色
Paint paint1 = new Paint();//定義畫筆
paint1.setStyle(Paint.Style.STROKE);//設(shè)定畫筆類型 stroke為描邊
paint1.setColor(0xff663399);//定義畫筆顏色
paint1.setStrokeWidth(20);//定義邊框?qū)挾?
canvas.drawRect(100,100,400,300,paint1);//繪制空心矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
canvas.drawCircle(250, 600, 150, paint1);//繪制空心圓 前兩為圓心位置 后一個半徑 最后為使用的畫筆
canvas.drawOval(100,900,400,1100, paint1);//繪制空心橢圓 設(shè)定外邊框矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
canvas.drawRect(600,100,900,300,paint2);//繪制實心矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
canvas.drawCircle(750, 600, 150, paint2);//繪制實心圓 前兩為圓心位置 后一個半徑 最后為使用的畫筆
canvas.drawOval(600,900,900,1100, paint2);//繪制實心橢圓 設(shè)定外邊框矩形 前倆為左上角 后倆為右下角 最后為使用的畫筆
//使用路徑法繪制自定義圖形
Path path1 = new Path();
path1.moveTo(250, 1250);//設(shè)定起始點
path1.lineTo(100,1500);//頂點1
path1.lineTo(400,1500);//頂點2
path1.close();//最后一個點與頂點相連
canvas.drawPath(path1, paint1);//繪制空心三角形
//繪制弧形或者扇
RectF rectF1 = new RectF(100, 1700, 400, 2000);//定義弧形的外邊框矩形
canvas.drawArc(rectF1,0,225,false, paint1);
RectF rectF2 = new RectF(600, 1700, 900, 2000);//定義弧形的外邊框矩形
canvas.drawArc(rectF2,0,225,true, paint1);
RectF rectF3 = new RectF(600, 1200, 900, 1500);//定義弧形的外邊框矩形
canvas.drawArc(rectF3,0,225,false, paint2);
//第一個為外邊框矩形
//第二個為初始方向 0為3點鐘方向 順時針增加 逆時針減少
//第三個為劃過角度 順時針增加 逆時針減少
//第四個為是否連接中心點
//第五個為使用的畫筆類型
}
}
運行結(jié)果圖
?
作者:張峰騰
學(xué)號:116052020132
原文地址:https://blog.csdn.net/m0_56687634/article/details/128178373?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128178373%22%2C%22source%22%3A%22m0_56687634%22%7D
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧