日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)

發(fā)布時間:2023/12/3 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文實例講述了Android canvas畫圖操作之切割畫布實現(xiàn)方法。分享給大家供大家參考,具體如下:

android切割畫布的歷程不算很難,可是理解起來也比較麻煩,這里寫一下我的理解 但是不一定正確:

canvas.clipRect(30,30,70,Region.Op.XOR);

最后一個參數(shù)有多個選擇分別是:

//DIFFERENCE是第一次不同于第二次的部分顯示出來

//REPLACE是顯示第二次的

//REVERSE_DIFFERENCE 是第二次不同于第一次的部分顯示

//INTERSECT交集顯示

//UNION全部顯示

//XOR補集 就是全集的減去交集生育部分顯示

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.Region;

import android.util.AttributeSet;

import android.view.View;

public class sBook extends View{

Context mContext;

Paint mPaint;

Path mPath;

public sBook(Context context) {

super(context);

init();

}

public sBook(Context context,AttributeSet attrs) {

super(context,attrs);

init();

}

public sBook(Context context,AttributeSet attrs,int defStyle) {

super(context,attrs,defStyle);

init();

}

private void init(){

mPaint = new Paint();

mPaint.setAntiAlias(true);

mPaint.setStrokeWidth(6);

mPaint.setTextSize(16);

mPaint.setTextAlign(Paint.Align.RIGHT);

mPath = new Path();

}

protected void onDraw(Canvas canvas){

canvas.drawColor(Color.GRAY);

canvas.save();

canvas.translate(10,10);

drawScene(canvas);

canvas.restore();

canvas.save();

canvas.translate(160,10);

canvas.clipRect(10,10,90,90);

canvas.clipRect(30,Region.Op.XOR);

drawScene(canvas);

canvas.restore();

canvas.save();

canvas.translate(10,160);

mPath.reset();

// canvas.clipPath(mPath); // makes the clip empty

// mPath.addCircle(50,50,Path.Direction.CCW);

mPath.cubicTo(0,100,100);

mPath.cubicTo(100,0);

canvas.clipPath(mPath,Region.Op.REPLACE);

drawScene(canvas);

canvas.restore();

canvas.save();

canvas.translate(160,160);

canvas.clipRect(0,60,60);

canvas.clipRect(40,40,Region.Op.UNION);

drawScene(canvas);

canvas.restore();

canvas.save();

canvas.translate(10,310);

canvas.clipRect(0,Region.Op.XOR);

drawScene(canvas);

canvas.restore();

canvas.save();

canvas.translate(160,Region.Op.REVERSE_DIFFERENCE);

drawScene(canvas);

canvas.restore();

}

private void drawScene(Canvas canvas) {

canvas.clipRect(0,100);

canvas.drawColor(Color.WHITE);

mPaint.setColor(Color.RED);

canvas.drawLine(0,mPaint);

mPaint.setColor(Color.GREEN);

canvas.drawCircle(30,mPaint);

mPaint.setColor(Color.BLUE);

canvas.drawText("Clipping",mPaint);

}

}

希望本文所述對大家Android程序設計有所幫助。

總結

如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。

本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡收集整理提供,作為學習參考使用,版權屬于原作者。

小編個人微信號 jb51ccc

喜歡與人分享編程技術與工作經(jīng)驗,歡迎加入編程之家官方交流群!

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。