Android 自定义 View _ 扭曲动效,android开发环境搭建教程

本文介绍了如何使用Android的drawBitmapMesh方法对Bitmap进行扭曲效果,通过设置网格点并改变顶点位置实现。内容包括基本概念、简单示例及车厢扭曲的实现细节,帮助开发者理解并创建自定义扭曲动效。
摘要由CSDN通过智能技术生成

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进行扭曲

3. drawBitmapMesh简单示例

  • 根据参数的含义,我们先初始化这些参数:

//将图像分成多少格
private int carBodyWidthPart = 4;
private int carBodyHeightPart = 4;
//交点坐标的个数
private int carBodyPartCount = (carBodyWidthPart + 1) * (carBodyHeightPart + 1);
//用于保存COUNT的坐标
//x0, y0, x1, y1…
private float[] carBodyNewsPos = new float[carBodyPartCount * 2];
private float[] carBodyOrigPos = new float[carBodyPartCount * 2];
/**

  • 得到网格点集合
  • @param bitmap bitmap
  • @param heightPart 纵向分割的份数
  • @param widthPart 横向分割的份数
  • @param newPos 新点集合
  • @param origPos 原始点集合
    */
    protected void getBitmapMeshPoints(Bitmap bitmap, int heightPart, int widthPart, float[] newPos, float[] origPos) {
    //初始化网格点
    int index = 0;
    float bmWidth = bitmap.getWidth();
    float bmHei
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值