android-Android Canvas clipPath 画图锯齿问题

问题描述

Android Canvas clipPath 画图锯齿问题

在Canvas上裁剪一个Path,将Bitmap画上去,出现锯齿问题。
Path path = new Path();
path.addCircle(left, top, radius, Path.Direction.CCW);
canvas.save();
canvas.clipPath(path);
Rect destRect = new Rect(left, top,
right, bottom);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setAntiAlias(true);
canvas.drawBitmap(bitmap, srcRect, destRect, paint);
canvas.restore();

解决方案

canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));  这样试试
时间: 2024-08-01 07:31:47

android-Android Canvas clipPath 画图锯齿问题的相关文章

【android入门】之Android Canvas绘图抗锯齿解决方法

对于Android来说Canvas一般大量用于自定义View和游戏开发中,对于图形的基础绘制类,提供的drawText.drawBitmap以及drawCircle都需要抗锯齿处理才能让人满意,下面Android123将他们分为两大种情况.  一.包含Paint参数情况时,对于drawText.drawBitmap这样的方法,一般最后一个参数为Paint对象,Paint对象一般用于设置笔刷颜色和大小,同时包含了抗锯齿的方法,比如说objPaint.setAntiAlias(true);  这个方

android通过Canvas和Paint截取无锯齿圆形图片

一个通过Canvas和Paint截取无锯齿圆形图片. /** * 根据原图和变长绘制圆形图片 * * @param source * @param min * @return */ public static Bitmap createCircleImage(Bitmap source, int min) { Paint paint = new Paint(); // paint.setStyle(Paint.Style.STROKE); // paint.setFlags(Paint.ANTI

Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path,

Android中Canvas的常用方法总结_Android

一.对Canvas进行操作 对Canvas的一系列操作,是指对Canvas进行旋转.平移.缩放等操作. 这些操作可以让Canvas对象使用起来更加便捷. 二.Canvas平移 /** * 画布向(100,50)方向平移 * * 参数1: 向X轴方向移动100距离 * 参数2: 向Y轴方向移动50距离 */ canvas.translate(100, 50); 三.Canvas缩放 /** * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍 * 参数1: X轴的放大倍数 * 参数2: Y轴的放

Android使用Canvas绘制圆形进度条效果_Android

前言 Android自定义控件经常会用到Canvas绘制2D图形,在优化自己自定义控件技能之前,必须熟练掌握Canvas绘图机制.本文从以下三个方面对Canvas绘图机制进行讲解: 画布Canvas 画笔Paint 示例圆形进度条 画布Canvas 首先,来看一下Android官网对Canvas类的定义: The Canvas class holds the "draw" calls.To draw something, you need 4 basic components: A B

Android使用Canvas绘制圆形进度条效果

前言 Android自定义控件经常会用到Canvas绘制2D图形,在优化自己自定义控件技能之前,必须熟练掌握Canvas绘图机制.本文从以下三个方面对Canvas绘图机制进行讲解: 画布Canvas 画笔Paint 示例圆形进度条 画布Canvas 首先,来看一下Android官网对Canvas类的定义: The Canvas class holds the "draw" calls.To draw something, you need 4 basic components: A B

流量-Android的Canvas坑啊

问题描述 Android的Canvas坑啊 如何定画布位置,让它的周围还能添加其他的组件.求大神解答哈~~~~~~凑满30字了 解决方案 你自己定义一个Rect,画的时候就以这个Rect为基准,left,top等,其他位置你爱干啥干啥

Android中Canvas绘图基础详解(附源码下载)

Android中,如果我们想绘制复杂的自定义View或游戏,我们就需要熟悉绘图API.Android通过Canvas类暴露了很多drawXXX方法,我们可以通过这些方法绘制各种各样的图形.Canvas绘图有三个基本要素:Canvas.绘图坐标系以及Paint.Canvas是画布,我们通过Canvas的各种drawXXX方法将图形绘制到Canvas上面,在drawXXX方法中我们需要传入要绘制的图形的坐标形状,还要传入一个画笔Paint.drawXXX方法以及传入其中的坐标决定了要绘制的图形的形状

为什么 Android 上 Canvas 画出的图形不够平滑

本文讲的是为什么 Android 上 Canvas 画出的图形不够平滑, 通过 Google 搜索我们很快就能找到这个在 StackOverflow 中被问了很多次的问题,同时答案也经常是相同的:你需要给你的 Paint 对象设置 ANTI_ALIAS_FLAG 属性.但对于大多数人来说这并不能解决问题.下面我讲讲原因. 在 Canvas 上绘制 若你需要在 Canvas 上绘制,你有两种选择. 直接在 Canvas 上绘制. 先在 Bitmap 上绘制再将 Bitmap 绘制到 Canvas