草庐IT

canvas2d

全部标签

android - 如何使用onDraw(Canvas)获取WebView的位图快照(Android)

我曾经使用capturePicture()方法制作我的WebView的快照。此方法在API级别19中已弃用。文档说“使用onDraw(Canvas)获取WebView的位图快照”,但我真的不知道它是什么意思。你能教我如何解决这个问题吗? 最佳答案 以下应该有效:floatscale=webView.getScale();intwebViewHeight=(int)(webView.getContentHeight()*scale);Bitmapimage=Bitmap.createBitmap(webView.getWidth(),

android - Canvas 中的 java.lang.UnsupportedOperationException

我在我的应用程序中使用了自定义ImageView。但它显示java.lang.UnsupportedOperationException在代码canvas.clipPath(clipPath)中。我不知道为什么会出现这个错误。它在某些手机上完美运行。publicclassGma_CustomImage2extendsImageView{publicstaticfloatradius=10.0f;publicGma_CustomImage2(Contextcontext){super(context);}publicGma_CustomImage2(Contextcontext,Attr

java - Android 2d 游戏碰撞检测

我使用SurfaceView在androidstudio中开发了一个2d游戏,它在碰撞上下文中并不复杂,只需要检查移动点和一些静态圆之间的碰撞,为了检测一个圆的碰撞,我只需检查点的X是否在圆minX和maxX&&点Y之间在圆的minY和maxY之间。所以为了在整个游戏中检查碰撞,我重复检查上面的代码以检查每一帧中的所有圆圈。当我有10个圆圈时,游戏运行非常好,但如果我添加30个圆圈,它的FPS会降低很多,我会遇到很多延迟!遇到这个问题我该怎么办?我应该使用Box2dphysics吗?即使有这么多物体碰撞在一起,游戏也不会面临延迟问题,这对碰撞检测有什么作用?请帮助我提供更多细节,因为我

android - texture2D().r 和 texture2D().a 是什么意思?

我在Android编程中使用OpenGLES,当我在着色器中将YUV(NV21)转换为RGB时,例如:vec3yuv=vec3((texture2D(u_TextureY,vTextureCoord).r-0.0625),texture2D(u_TextureUV,vTextureCoord).a-0.5,texture2D(u_TextureUV,vTextureCoord).r-0.5);然后我将获取与u_TextureY和u_TextureUV分开的YUV数据。我知道NV21格式是这样的:YYYYYY...UVUV...但是如何将YUYV422转换为RGB?所以,我的问题是tex

javascript - Window.open + 移动设备 + Canvas == 不工作?

我在元素内部创建了一个“按钮”。这是一个简单的路径,可以检测您是否在其中,以及您是否单击过它或将手指放在上面。如果你这样做,它会执行:window.open("http://www.google.com");它在浏览器中运行良好,但我已经在iPad、Android(2.2)手机和Android平板电脑(3.2)上测试过,它不会打开新窗口。这是我放在一起演示的jsfiddle:代码:http://jsfiddle.net/JgrU4/只是结果:http://jsfiddle.net/JgrU4/embedded/result/关于如何实现这一点有什么想法吗?

android - C2D_MESSAGE权限错误?

这似乎是一个相当常见的问题,但没有很好的答案。我刚刚按照GCM推送消息的谷歌指南进行操作,但收到此错误:E/AndroidRuntime(21779):java.lang.RuntimeException:UnabletostartactivityComponentInfo{eric.bander.app/eric.bander.app.MenuScreen}:java.lang.IllegalStateException:Applicationdoesnotdefinepermissioneric.bander.app.permission.C2D_MESSAGEE/AndroidR

android - canvas.clip Path()即使在禁用硬件加速后也无法正常工作

我在Canvas上画了一个用黑色填充的圆圈,并将Canvas的背景颜色设置为红色。我只希望黑色圆圈显示为我的View,但我也得到了红色。我试过使用canvas.clipPath()它确实有效。我在网上搜索了一下,发现我们需要禁用硬件加速才能让它工作。我试过了,但它仍然有效。尝试为特定View禁用硬件加速:view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);还有整个应用程序:android:hardwareAccelerated="false"Dint在这两种情况下都有效。关于如何使其发挥作用的任何想法?代码:我在这里剪辑@Overridep

android - cocos2d-x & android 从assets文件夹加载文件

我在assets/plist/文件夹中有一堆plist文件,我正在尝试加载这些文件以验证它们的哈希值。发生的事情是下面的代码对我来说失败了constchar*fullPath=cocos2d::CCFileUtils::sharedFileUtils()->fullPathForFilename(name).c_str();std::ifstreamifs(fullPath,std::ios::binary);std::vectorstr((std::istreambuf_iterator(ifs)),std::istreambuf_iterator());返回的字符数组始终为空。尝试

matplotlib:在混合2D/3D子图中删除3D图的白色空间

混合2D和3D子图时,我很难去除过多的白色空间。对于纯3D子图,我可以调整所绘制的区域fig.subplots_adjust()要删除白色空间,请参阅这里.但是,如果此3D图像在2D子图内,则相同的技巧不起作用。我创建了混合子图,如下所示:importmatplotlib.pyplotaspltfrommatplotlibimportcmfrommpl_toolkits.mplot3dimportaxes3dfig,axes=plt.subplots(2,2)ax=axes.flatforainrange(3):ax[a].plot(range(10),range(10))ax[3].remo

java - 绘制到 Canvas 太慢,如何达到恒定的 30 fps 或更高? (安卓)

我正在尝试为Android创建一个2d游戏,目前我正在努力实现大约30fps的恒定fps(我认为30对移动游戏来说足够了)。我正在使用SurfaceView和一个非常简单的游戏循环:while(isOk==true){if(!holder.getSurface().isValid())continue;c=holder.lockCanvas();update();draw(c);holder.unlockCanvasAndPost(c);t2=System.currentTimeMillis();all++;if(mspf/*milisecondsperframe,andit'sset