大佬教程收集整理的这篇文章主要介绍了android – 绘制大型位图时非常慢的nSyncAndDrawFrame,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
doFrame()方法使用~18 ms完成.
但是,在使用我的Nexus 7或Android 6 Emulator(Genymotion)时,Traceview转储如下所示:
@L_674_2@
运行完全相同的应用程序时,nSyncAndDrawFrame方法现在需要大约300毫秒.
有趣的代码部分位于视差视图的onDraw()中:
for (int i = 0; i < parallaxCon@L_818_5@manager.getnumberOfLayers(); i++) { Bitmap layer = parallaxCon@L_818_5@manager.getLayer(i); float dx = (offset * parallaxCon@L_818_5@manager.getScrollSpeedFactorForLayer(i) * imageScaleFactor); int offset = Math.round(-parallaxCon@L_818_5@manager.getBoardOffset(i) + dX); srcRect.offsetTo(offset,0); int realWidth = getRealWidth(srcRect,layer.getWidth()); float scaleFactor = destRect.width() / (float) srcRect.width(); if (realWidth < srcRect.width()) { destRect.left = (int) (scaleFactor * Math.max(0,-srcRect.left)); destRect.right = destRect.left + (int) (scaleFactor * realWidth); } destRect.bottom = Math.min(screenHeight,(int) (scaleFactor * layer.getHeight())); canvas.drawBitmap(layer,srcRect,destRect,paint); destRect.left = 0; destRect.right = screenWidth; }
以上是大佬教程为你收集整理的android – 绘制大型位图时非常慢的nSyncAndDrawFrame全部内容,希望文章能够帮你解决android – 绘制大型位图时非常慢的nSyncAndDrawFrame所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。