前言
在之前講過畫筆Paint的基本使用,這篇文章讓我們來了解下畫布---Canvas的基本使用。
相關文章:
自定義控件概述
Paint的基本使用
今天講解的內容有:
- Canvas設置背景
- Canvas畫Point
- Canvas畫直線
- 矩形構造方法
- canvas畫矩形
- Color顏色的構建和提取
- Canvas用直線畫"正"字示例
- 項目結構圖和效果圖
一.Canvas設置背景
canvas設置背景有三種方法:
// canvas.drawARGB(23,55,70,32);
// canvas.drawRGB(77,120,240);
canvas.drawColor(Color.WHITE);
二.Canvas畫Point
canvas畫點的方法如下:
Paint paint=new Paint();
paint.setColor(Color.RED);//設置顏色
//畫點的時候,Paint的style設置無效,故此處不設置Paint.Style
paint.setStrokeWidth(30f);
//畫點
canvas.drawPoint(500,100,paint);
//注:畫出的點是方塊,而不是圓.
需要注意的是,畫點時,設置Paint的style無效,且畫出來的點不是圓的,而是實心小方塊。
三.Canvas畫直線
canvas畫直線的方法如下:
canvas.drawLine(float startX,float startY,float stopX,float stopY,Paint paint);
其中 startX:畫線起點x坐標
startY:畫線起點y坐標
stopX: 畫線結束點x坐標
stopY: 畫線結束點y坐標
四.矩形構造方法
矩形分為 Rect 和 RectF 兩個類,這兩個類的用法基本一樣,區別是 Rect 構造的時候,對應傳的坐標值為 int 數據類型,而RectF 構造的時候,對應傳的坐標值為 float 數據類型
4.1 Rect的構造方法
Rect rect=new Rect();
Rect rect=new Rect(Rect r);
Rect rect=new Rect(int left,int top,int right,int bottom);
4.2 RectF的構造方法
RectF rectf=new RectF();
RectF rectf=new RectF(Rect r);
RectF rectf=new RectF(RectF rf);
RectF rectf=new RectF(float left,float top,float right,float bottom);
五.canvas畫矩形
canvas畫矩形有兩種方式,直接畫矩形或先構造矩形,然后將矩形設置到canvas上
5.1 canvas直接畫矩形
canvas.drawRect(float left,float top,float right,float bottom,Paint paint);
注意 canvas直接畫矩形的時候,坐標參數為float類型。
5.2 先畫矩形,再設置到畫布上
canvas設置矩形的方法是這樣的:
canvas.drawRect(Rect rect,Paint paint);
canvas.drawRect(RectF rectf,Paint paint);
若想在canvas上畫矩形,你可以這樣:
Rect rect=new Rect(50,450,200,600);
canvas.drawRect(rect,paint);
或者像這樣:
Rect rect=new Rect();
rect.set(50,450,200,600);
canvas.drawRect(rect,paint);
六. Color顏色的構建和提取
6.1 Color顏色的構建
Color.argb(int alpha,int red,int green,int blue);
Color.rgb(int red,int green,int blue);
6.2 Color顏色的提取
int alpha=Color.alpha(0xff5e73df);
int red=Color.red(0xff5e73df);
int green=Color.green(0xff5e73df);
int blue=Color.blue(0xff5e73df);
七.Canvas用直線畫"正"字示例
具體代碼demo中有,這里主要介紹下自定義控間Canvas在MainActivity對應的activity_main.xml中的引用代碼如下:
<android.support.constraint.ConstraintLayout 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:background="@color/white"
tools:context="com.android.testdemo.main.MainActivity">
<com.android.testdemo.animation.CanvasView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.constraint.ConstraintLayout>
八. 項目結構圖和效果圖
項目結構圖
效果圖
Canvas的基本用法