SurfaceView与Canvas的结合实现气泡动态壁纸

Android开发之自定义SurfaceView绘制动效音波图 | 动效音阶图 | Android自定义View 第一步先判断是不是第一个矩形,如果是第一个,那么第一个矩形的左边距就等于=0或者你需要设置的左边距即可,右边距就等于=左边距+矩形的宽度+2个矩形的间距。第二步判断非0个矩形,name左边距就等于上一一个的右边距+2个矩形之间的间距代码如上。先说下这个自定义view也不难很简单,就是绘制矩形,唯一的难点在于计算矩形的坐标。上面代码是针对图2的,如果需要看图一的完整代码我提供一份都在一个项目中。高度好说动态设置就好,top直接设置动态,bottom直接是固定的值。看下SurfaceView完整代码吧。.... 阅读详情

效果展示:
这里写图片描述
其实每个View中都有Canvas可以用来绘制动画,只需要在这个View中重载onDraw()方法就可以,但是SurfaceView类是一个专门用来制动动画的类。

Canvas(中文叫做”画布”)就和HTML5中的canvas标签一样可以在一定区域内自由绘制图形。Canvas+SurfaceView制作的动画与View Animation和Property Animation这类动画比起来更加适合大量的集中播放的动画,比如游戏画面、相机的图像显示等。

因为SurfaceView通常会在另一个专门的线程中不断重绘界面,所以不像其他动画那样要在主线程(UI线程)中播放动画的同时还要消耗一定的流畅度用来响应用户输入。

在使用SurfaceView时需要注意下面这些要点:

1)每个SurfaceView都需要一个SurfaceHolder对象来处理这个SurfaceView的生命周期和获取这个SurfaceView的Canvas对象,可以通过调用SurfaceView的getHolder()方法来获取它的SurfaceHolder对象。

2)使用SurfaceView时一般是通过继承SurfaceView的方式来实现,可以顺便implements两个接口,分别是Runnable和SurfaceHolder.Callback。第二个接口需要重载三个函数,这三个函数就是SurfaceView的生命周期处理了,可以通过SurfaceHolder对象的addCallback()方法把实现好的Callback对象传进去。

3)在使用SurfaceView的Canvas时一定要记得加锁同步,因为不能让画布同时绘制多个图案,通过调用这个SurfaceView的SurfaceHolder对象的lockCanvas()就可以做到这一点。绘制完毕后在调用SurfaceHolder对象的unlockCanvasAndPost()方法就可以解锁并更新。

下面给出了一个用SurfaceView和Canvas绘制动画的例子,一般直接复制上就可以运行看到效果:

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
  
Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片 Android 音视频开发 上一篇文章:使用 imageview绘制一张图片 任务一 SurfaceView绘制一张图片 文章目录Android 音视频开发前言一、surfaceview是什么?二、使用步骤1.配置activity_main.xml2.编写code3.效果显示总结 前言 提示:SurfaceView: 1 为什么要用surfaceview? 一般UI是在应用程序的主线程中绘制,但是对一些游戏画面,或者摄像头,视频播放等,UI都比较复杂,要求能够进行高效的绘制,这时候就必须要给复杂而高效的 阅读详情

相关推荐

SurfaceView与TextureView的绘制渲染

1.SurfaceView的初始化 SurfaceView的初始化流程发生在首次绘制前。 1.1 SurfaceControl的创建 SurfaceView在初始化过程中会创建三个SurfaceControl节点:容器节点、绘制节点、背景节点。首先会在ViewRootImpl的SurfaceControl节点下创建SurfaceView的容器节点,然后在SurfaceView的容器节点下创建SurfaceView的绘制节点和SurfaceView的背景节点。 1.2 Surface的初始化 SurfaceV

LeeDuoZuiShuai的博客 2501

【Android UI】SurfaceView中使用 Canvas 绘制可缩放大图 ( 拖动和缩放相关的变量 | Canvas 绘图函数 | 手势识别 多点触控流程 | 拖动图片 | 缩放图片 )

一、需求分析 和 核心要点 说明 1、需求说明 2、核心要点 - 拖动和缩放相关的变量 3、核心要点 - Canvas 绘图函数 4、核心要点 - 手势识别 多点触控流程 5、核心要点 - 拖动图片 6、核心要点 - 缩放图片 二、完整代码示例 1、环境说明 2、SurfaceView 完整代码 3、运行结果

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 3080

微软Surface系列壁纸(共19张)

微软Surface系列壁纸(共19张)超高清壁纸 Surface Book - Blue 3500 ✖ 2333 Surface Book - Rainbow 3000 ✖ 2000 Surface Book - Red 2500 ✖ 1667 Surface Book - Yellow 2500 ✖ 1666 Surface Family 2050 ✖ 1366 Surface Go 4500 ✖ 3000 Surface Hub 2 (Surf) 3992 ✖ 2242 Surface Hub 2 (Wave) 3896 ✖ 2602 Surface Hub 2880 ✖ 1800 Surface Laptop 2 - Black 2915 ✖ 1950 Surface Laptop 2 - Burgundy 2915 ✖ 1950 Surface Laptop 2 - Cobalt 2915 ✖ 1950 Surface Laptop 2 - Default 2256 ✖ 1504 Surface Laptop 2 - Platinum 1800 ✖ 1200 Surface Pro 6 4500 ✖ 3000 Surface Studio (Elephant) 3504 ✖2336 Surface Studio (Mountains) 4500 ✖ 3000 Surface Studio 2 4500 ✖ 3000 Surface Studio 4500 ✖ 3000

Android代码-使用OpenGL实现的自定义气泡形状TextureView。

BubbleTextureView Custom bubble shape TextureView for Android, OpenGL surface implementation using TextureView. 自定义气泡形状的TextureView,使用OpenGL实现 Features Custom radius,arrow position and arrow size shape textureview by opengl Dependency Add this in your build.gradle file compile 'com.zolad:bubbletextureview:1.0.0' Usage 1.layout xml 2.Set radius, arrow size,arrow direction(left or right),arrow position /** * set corner radius and arrow size and arrow direction * * @para

IBM System x3650 M5 IMM配置

1、IMM基本介绍 IMM,全称是Intel Mobile Module是IBM服务器上的集成管理模块,该模块是独立于服务器系统,可以通过一个单独的IP地址,使用Web和虚拟端口方式直接启动、停止和管理远程服务器,即使主板、处理器或者内存故障导致主机无法启动,也依然可以远程管理服务器,可以远程直接操作启动画面和服务器工作界面。 2、IP地址配置 2.1 通过Web方式修改IP地址 IBM服...

血饮渊虹的博客 4万+

FPGA以太网接口设计避坑指南:GMII与RGMII时序转换的三种实现方案对比

本文深入解析FPGA以太网接口设计中GMII与RGMII时序转换的三种实现方案,包括Xilinx官方IP核、手工原语逻辑和开源方案gmii_to_rgmii。通过对比分析各方案的优缺点和适用场景,为工程师提供技术选型指南,帮助避免常见设计陷阱,提升高速网络设备开发的效率和可靠性。

weixin_42570484的博客 380

遥感图像小白--2--图像分割

遥感图像分割基础入门

Mary的博客 4233

IEEE投稿完整流程——以IEEE Transactions on Cybernetics为例【附:论文格式模板】

前言 以下是官方的流程,包括了论文的格式和提交的流程,重要!重要!重要! 在IEEE的官网中,也有论文提交的文件 可以直接参考: 中文版: 作者指南 英文版: Manuscripts-Author-Guide 作者指南的版本指导流程可能和最新版的官网不一致!!! 或者在下面的链接中,按照你的论文类型,选择不同的论文模板: IEEE article template 以下以IEEE Transactions on Cybernetics 为例子 IEEE Transactions on Cyberne

XC___XC的博客 10万+

DSH-Work:一个让DeepSeek下载即用的Harness客户端

使用大模型工具时,环境配置往往比模型本身更让人头疼。DeepSeek Harness作为一类封装层,将模型调用、上下文管理、参数控制等复杂细节统一收拢,对外提供简洁操作入口。开源的DSH-Work正是这样一款Harness客户端,它通过自带运行时与保守默认配置,实现了下载即用、免配环境的目标,让使用者无需掌握Python、CUDA等专业知识即可快速连接DeepSeek云端或本地服务。对于非技术背景的用户,它降低了AI工具的使用门槛;对于开发者,它把时间从环境排错中解放出来,更专注于提示词调优与工作流设计。无

weixin_29048309的博客 343

【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现

本文提出YOLOv12,一种以注意力为中心的实时目标检测框架,通过创新性改进解决传统YOLO模型在精度与速度上的失衡问题。核心贡献包括:1)轻量混合注意力模块(LHA)结合通道与空间注意力,在不增加计算负担下提升特征提取能力;2)区域注意机制与R-ELAN网络优化特征聚合,显著改善小目标检测(AP_S提升8.3%);3)动态多光谱数据增强策略增强模型鲁棒性。实验表明,YOLOv12在COCO等基准上实现SOTA性能,同时保持2.1 TOPS/W的高能效比,适用于边缘设备部署。该工作为实时目标检测提供了新的注

一碗白开水一 1807

Allegro16.6详细教程(二)

3-D Viewer,可以直接在allegro中看到board file的3-D顯示效果。3-D Viewer對於PCB Editor Products,只有環境變數中的OpenGL顯示功能開啟後才有效,而對於APD/SiP是無效的。2.3-D viewer是在一個獨立的視窗中打開的。3-D environment環境支援多種顯示內容的過濾,取景視角和顯示效果的選項,透過遊標可以直接控制放大,移動,翻轉等操作。

axingxiansen的博客 1917

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 使用Handler中postDelayed方法实现广告页面无限循环轮播效果
下一篇: 使用SurfaceView播放视频,调节进度,滑动屏幕调节音量并显示音量。
Allen-华
博客等级 码龄11年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值