android 抗锯齿效果(Paint方式、Canvas方式)

Android 2D绘图解析之 Canvas,Paint 【Android 2D绘图解析】系列文章将全面介绍Android绘图相关,这是第一篇,简单介绍下如何利用Android API进行一些简单图形的绘制,绘图的前提是需要继承自View,然后重写它的onDraw(Canvas canvas) 方法即可。 首先我们新建一个类继承自View,并重写onDraw方法。 package com.leejz.androiddrawing; //blog:ww 阅读详情

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
    方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。

Java代码   收藏代码
  1. paint.setAntiAlias(true);  

 


    方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。

Java代码   收藏代码
  1. canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));  

 

      测试代码如下:

Java代码   收藏代码
  1. import android.content.Context;  
  2. import android.graphics.Bitmap;  
  3. import android.graphics.BitmapFactory;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Matrix;  
  6. import android.graphics.Paint;  
  7. import android.graphics.PaintFlagsDrawFilter;  
  8. import android.view.View;  
  9.   
  10. public class MyView extends View {  
  11.     private PaintFlagsDrawFilter pfd;  
  12.     private Paint mPaint = new Paint();  
  13.     private Matrix matrix = new Matrix();;  
  14.     private Bitmap bmp;  
  15.   
  16.     public MyView(Context context) {  
  17.         super(context);  
  18.         initialize();  
  19.     }  
  20.   
  21.     private void initialize() {  
  22.         pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);        
  23.         mPaint.setAntiAlias(true);  
  24.         matrix.setRotate(30);  
  25.         matrix.postScale(0.5f, 0.5f);  
  26.         bmp = BitmapFactory.decodeResource(getResources(), R.drawable.show);  
  27.     }  
  28.       
  29.     @Override  
  30.     public void dispatchDraw(Canvas canvas) {  
  31.         canvas.translate(100, 0);  
  32.         canvas.drawBitmap(bmp, matrix, null);  
  33.         canvas.translate(0, 250);  
  34.         canvas.drawBitmap(bmp, matrix, mPaint);  
  35.         canvas.setDrawFilter(pfd);  
  36.         canvas.translate(0, 250);  
  37.         canvas.drawBitmap(bmp, matrix, null);  
  38.     }  
  39. }  
 

    下图是效果:

 

      可以看出,两种方式都挺有效的。

Android使用Paint 和 Canvas 的相关知识,自定义 View 实现一系列效果动画 /定义小圆的画笔//定义扩散大圆的画笔//定义属性动画//背景色//表示旋转圆的中心坐标//表示斜对角线长度的一半,扩散圆最大半径//6个小球的半径//旋转大圆的半径//当前大圆的旋转角度//当前大圆的半径//扩散圆的半径//表示旋转动画的时长。 阅读详情

相关推荐

【TM1650】STM8S TM1650芯片控制程序

以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include <iostm8s103f3.h> #include <intrinsics....

cxw312864660的博客 1万+

Android画图之抗锯齿(转)

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。    方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。 Java代码  paint.setAntiAlias(true);         方法二:给Canvas加上抗锯齿标志。有些地方不能用paint的,就直接给canv...

狂徒技术分享 807

YOLOv8 + TensorRT 实战:手把手教你用 C++ 实现实时视频流目标检测(附完整项目代码)

本文详细介绍了如何将YOLOv8与TensorRT结合,通过C++实现实时视频流目标检测的全流程。从环境配置、模型转换优化到视频处理架构设计,手把手教你构建高性能检测系统,并附完整项目代码。特别针对Windows平台下的TensorRT模型加速部署提供了实用技巧和性能优化方案。

weixin_29051193的博客 347

Android动画抗锯齿的全解决方案

Andriod抖动动画抗锯齿

SixSix的自留地 1911

2022-2028年全球与中国玄武岩连续纤维(BCF)行业深度分析

本文研究全球与中国市场玄武岩连续纤维(BCF)的发展现状及未来发展趋势,分别从生产和消费的角度分析玄武岩连续纤维(BCF)的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。 主要生产商包括: Kamenny Vek TESPE Mafic Technobasalt Russian Basalt ISOMATEX SA Sudaglass Basalt Fiber INNEGRA LAVAint

Fj69258的博客 617

Tera Term介绍和使用指南

Tera Term 是一个用于 Windows 操作系统的免费终端模拟器和串口通信软件。它主要用于在计算机和其他设备之间建立串口通信连接,例如通过串行线缆连接到设备如路由器、开发板或嵌入式系统。Tera Term 支持多种通信协议和功能,包括 Telnet、SSH 和串口通信。提供了一个终端窗口,模拟了常见的终端类型,如VT100。支持通过串口与设备进行通信,可用于与嵌入式系统、微控制器等设备进行连接。提供 Telnet 和 SSH 功能,可用于通过网络连接到远程主机。

weixin_49423593的博客 1万+

canvas实现线性动画的时候带锯齿的问题

canvas实现线性动画的时候带锯齿的问题 解决方法一 1、就是在canvas标签中设置了width=“200”,height="200"之外, 还在外部的CSS样式表中设置了该canvas的宽度为100%. 2、然后在画图时把canvas的的宽度设为手机端的最大像素值, 因为现在的手机端宽度的最大的只有1080像素宽, 所以就把canvas的宽度和高度设为200的6倍也就是1200像素, 按照这...

心化江水的博客 1925

共聚焦显微镜的光源、工作原理与选型

共聚焦显微镜作为科研与工业领域中重要的微观成像工具,凭借光源的精准适配性、光学切片技术的三维成像能力,以及对不同工业场景的定制化适配潜力,为半导体检测、工业部件分析、智能制造升级提供了关键技术支撑。深入理解其光源特性、工作原理与选型逻辑,能帮助工程师与技术人员精准匹配设备与生产需求,既保障微观检测的精度与效率,又为产业优化、技术创新筑牢微观观测的基础。

PhotonixBay的博客 1540

Android Canvas 说明

Canvas 画布,用于在位图上进行绘制,内部关联一个mutable Bitmap, canvas在一系列操作后,展现在该Bitmap上。 什么时候有Canvas?   1. 自定义view时, onDraw、dispatchDraw   2. SurfaceHolder.lockCanvas();  操作SurfaceView时需要用到Canvas   3.

zhuhai__yizhi的专栏 756

Ubuntu系统 nano 编辑器使用教程

• 原因:文件编码不兼容(如 Windows 的 CRLF 换行符)。• 若使用 SSH 工具(如 PuTTY),确保终端设置中未占用。掌握这些操作后,你可以高效使用 nano 完成大部分文本编辑任务!• 底部快捷键栏:显示常用操作的快捷键(• 如果文件已修改,会提示是否保存:按。• 顶部状态栏:显示文件名和编辑状态。表示 Ctrl + G(查看帮助)。保存时自动生成备份文件(原文件名后加。• 强制保存只读文件:用。启动 nano 时添加。启动 nano 时添加。(重做)触发自动缩进。

qq_44534541的博客 2096

Linux-BSP-WIFI驱动移植与调试实战——以RTL8189FS为例

本文以RTL8189FS为例,详细介绍了Linux BSP中WiFi驱动移植与调试的全流程。涵盖硬件原理图分析、内核配置、设备树适配、驱动编译加载及问题排查等关键步骤,提供实用的调试技巧和解决方案,帮助开发者高效完成嵌入式WiFi驱动开发。

moon9的博客 399

Android Paint 抗锯齿画线模糊

背景 Android 开发过程中, 或多或少会遇到需要使用自定义控件的情况, 而Paint作为画笔, 在整个开发过程中有着至关重要的地位, 用好它, 能让自定义控件展示出你期望的效果, 用不好… 或许会抱怨, 这平台/这工具/这类怎么设计得如此难用. 就如同本文将要阐述的问题, 希望能给遇到相似问题的朋友一点帮助, 若无碰到此类问题, 请自行略过. 问题 先看一张效果图 (图1): 两个网图, 同样设置的笔画宽度为1 setStrokeWidth(1), 左边的显示的大小是正常的, 右边则变成了2. 颜

ansondroider的博客 3284

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2996

Android画图之抗锯齿

<br />转自http://chroya.javaeye.com/blog/794505<br />在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。<br />方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。<br />paint.setAntiAlias(true); <br />方法二:给Canvas加上抗锯齿标志。<br />有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。<br />ca

2085

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 图片缩放抗锯齿

之前用的时候只设置了antialias属性,其实要设置两个flag才行 1 paint.setFlags(Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); 2 //或者 3   canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG...

18520195858的博客 508

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

自定义View(4)Canvas和Paint常用绘制函数

画布Canvas   在Android下进行2D绘图需要Canvas类的支持,它位于"android.graphics.Canvas"包下,直译过来为画布的意思,用于完成在View上的绘图。       Canvas为提供了两个构造函数: Canvas():创建一个空的Canvas对象。 Canvas(Bitmap bitmap):创建一个以bitmap位图为背景的Canva...

banyinlve3147的博客 160

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android SurfaceView 绘图

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34240520的博客 129

Android 自定义View之绘图

【Android 自定义View之绘图】 Android 自定义View之绘图 基础图形的绘制 一Paint与Canvas Paint Paint的基本设置函数 setAntiAliastrue 设置是否抗锯齿 2setStyle PaintStyle style 设置填充样式 3setColorColorInt int color 设置画笔颜色 4setStrokeWidthfloat w

moira33的博客 2万+

android 画布抗锯齿,怎么在Android应用中利用paint与Canvas实现抗锯齿效果

怎么在Android应用中利用paint与Canvas实现抗锯齿效果发布时间:2020-12-03 14:43:22来源:亿速云阅读:82作者:Leah怎么在Android应用中利用paint与Canvas实现抗锯齿效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传...

weixin_29820757的博客 819

android paint的抗锯齿效果

前几天在做公司需求的时候用到自定义textview的功能。主要是判断textview在显示完文字之后还有没有足够的空间用来显示一些图片和其他的文字,这里其他的文字是使用cavans.drawtext函数直接draw在textview上的。 功能完成之后看了下效果,发现用textview设置的字体跟draw出来的字体有些不同, 上面的是用textview直接设置的字体,下面是用draw显示的

andyhxc的博客 2万+

android canvas paint

首先看canvas 从android doc 可以看到:       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 (writi

star_splendid的专栏 3409

Android绘图基础之Canvas & Paint & Rect & RectF

转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/73611978 Rect RectF Canvas Paint Point Line Arc Circle Oval Rect RoundRect Text Bitmap PathRect & RectFRectF和Rect都表示的是一个矩形的区域,他们的构造方法类似!不同的是,Rect

crazy_jack 5457

android 中 Canvas和Paint

void drawLine(float startX, float startY, float stopX, float stopY, Paint ,paint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint。void drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。最后一个参数均为Paint对象。

2501_90256979的博客 957

Android中canvas和paint的关系及使用

刚刚开始接触学习Android的同鞋们在看到工程中出现的那么多的canvas啦、paint啦等等的使用的时候,都会惊讶于由这些方法创作出来的perfect界面,但同时也会对这些方法的使用感到困惑,他们大多时间他们都一块儿出现,到底他们是个什么样的关系?又该怎样用他们呢?         我们想象一个画面:一个小孩儿在一块画板上画画(虽然画的是啥咱不知到啦~~~)         在Androi

Listening_music的专栏 5920

android paint 线宽_Android Canvas和Paint基本使用

这篇文章主要介绍下画笔Paint和画布Canvas的基本使用1.Paint创建对象Paint mPaint = new Paint();常用的基本方法有 :mPaint.setAntiAlias(true); (抗锯齿)mPaint.setColor(Color.WHITE);(画笔颜色)mPaint.setARGB(inta,intr,intg,intb);取值都是0~255mPa...

weixin_39795419的博客 754
上一篇: 苦闷的程序员如何在工作中崭露头角
下一篇: 最全的男性职场着装常识
King·Forward
博客等级 码龄14年 117粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值