android 中使用GLSurfaceView 要实现它的手势放大缩小功能,效果需要平滑,有大侠知道么

擎星 2014-04-09 02:14:25
我自己通过改变这个对象的绝对布局可以实现,但是出现卡顿的效果,(因为我们的布局都是用绝对布局的)。有大神推荐我使用 public void scale(float sx, float sy, float sz) {
Matrix.scaleM(mMatrices, mCurrentMatrixIndex, sx, sy, sz);
}
private void setMatrix(ShaderParameter[] params, float x, float y, float width, float height) {
Matrix.translateM(mTempMatrix, 0, mMatrices, mCurrentMatrixIndex, x, y, 0f);
Matrix.scaleM(mTempMatrix, 0, width, height, 1f);
Matrix.multiplyMM(mTempMatrix, MATRIX_SIZE, mProjectionMatrix, 0, mTempMatrix, 0);
GLES20.glUniformMatrix4fv(params[INDEX_MATRIX].handle, 1, false, mTempMatrix, MATRIX_SIZE);
checkError();
}
这两个函数,但是不知道怎么用,对OpenGL不太熟,求大家指点啊
...全文
693 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔刘不息 2016-08-04
  • 打赏
  • 举报
回复
private void changeGLViewport(GL10 gl) { if(ChangeScale <= MIN_SCALE){ ChangeScale = 0.5f; gl.glViewport(0, 0, width, height); }else { int k = -2; frameSeq = (long) (100* ChangeScale); viewportOffset = (int) (100*ChangeScale); gl.glViewport(-maxOffset + viewportOffset * k, -maxOffset + viewportOffset * k, this.width - viewportOffset * 2 * k + maxOffset * 2, this.height - viewportOffset * 2 * k + maxOffset * 2); }
wangjg0317 2014-11-20
  • 打赏
  • 举报
回复
我也需要解决这个问题,不知道楼主解决了没有,解决了能否告知
Eastman_99 2014-04-18
  • 打赏
  • 举报
回复
帮顶, 帮顶,帮顶 我这几天也要在自己重写的GLSurfaceView上面实现放大缩小,如果你解决了,给小弟也说下

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧