博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——弧形弯曲显示的ImageView
阅读量:7237 次
发布时间:2019-06-29

本文共 521 字,大约阅读时间需要 1 分钟。

实现一个类似于一张图片贴合在圆柱上面的效果,如图所示:

原图:

主要是通过canvas的drawBitmapMesh方法实现的,步骤很简单:

1、根据图片想弯曲的角度计算圆柱的半径

2、计算图片像素点在Z轴上的偏移

3、通过camera实现Z轴的translate,并保存到Metrix中

float d = Math.abs(fx - bw / 2);//当前点离圆柱中心的X轴距离double offsetZ = mRadius * (1 - Math.cos(Math.asin(d / mRadius)));camera.save();camera.translate(0, 0, (float) offsetZ);camera.getMatrix(m3DMatrix);camera.restore();复制代码

4、drawBitmapMesh

选择合适的Mesh划分,并对Mesh上的点进行上述的translate

其实3D的效果可以做的更好(并不只是Z轴上的偏移,这里只做了简单的Z轴位置变化计算)

附上GIthub链接:

转载于:https://juejin.im/post/5a4b3a426fb9a0450671fdc2

你可能感兴趣的文章
4K超清,2500万人在线,猫晚直播技术全解读
查看>>
服务器运维基础指南
查看>>
NginX+keepalived实现高可用
查看>>
linux文件管理类命令汇总(用法与选项)
查看>>
LR 打不开IE的解决方法
查看>>
VMware ESXi 5 whitebox NIC support
查看>>
如何使用单机单网卡实现公司内、外网访问
查看>>
java 设计模式 学习笔记(四)工厂模式
查看>>
初探oVirt-清理ovirt环境
查看>>
rabbitMQ日常管理(转)
查看>>
SEO的作用是什么?为什么要学习SEO?
查看>>
记录历史命令,history,命令补全和别名、通配符、输入输出重定向
查看>>
java.sql.SQLException: No more data to read from socket
查看>>
我的友情链接
查看>>
对于IE6、IE7、Firefox兼容性的一些观点
查看>>
思科网络技术
查看>>
VS2010 生成Xml格式的注释文档
查看>>
【Linux】Linux操作系统期末复习笔记
查看>>
bat 编程语法
查看>>
shell模拟多线程,moreping(备份)
查看>>