Android 窗帘(Curtain Menu)效果一之波浪式扭曲图片

本文介绍了如何在Android中实现窗帘式的波浪动态扭曲效果,重点讲解了使用drawBitmapMesh方法结合正弦曲线公式来扭曲图片。通过理解drawBitmapMesh的参数和正弦曲线的性质,可以创建出逼真的窗帘褶皱效果。
摘要由CSDN通过智能技术生成

 写这篇文章的初衷是因为早些时候看到一款morning routine上的窗帘皱褶效果,自己也想去实现它,网上也有一些案例但是效果不太好而且没有任何的注释改动难度比较,因此想通过自己的想法去实现这个效果,让后面的人少走弯路。如下图就是我们最终想模仿实现的效果:                                                

 

在开始写代码之前,我们得先了解一些两个重要的知识点:

1.Canvas方法drawBitmapMesh的使用:

Canvas提供了一个方法

drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors,int colorffset,Paint paint)

这个方法可以对bitmap进行扭曲,参数说明如下:

bitmap     需要扭曲的源位图

meshWidth   控制在横向上把该源位图划成成多少格

meshHeight   控制在纵向上把该源位图划成成多少格 

verts      长度为(meshWidth + 1) * (meshHeight + 1) * 2的数组,它记录了扭曲后的位图各顶点位置

vertOffset         控制verts数组中从第几个数组元素开始才对bitmap进行扭曲

2.正弦曲线,公式&#x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值