草庐IT

canvas2d

全部标签

android - 将动画 gif 作为电影播放仅显示 Canvas 背景

我想在我的Android应用程序中播放动画gif。我注意到WebView可以很好地处理这段代码:webview.loadUrl("file:///android_asset/gif.gif");不幸的是,webView太占用内存,我的应用经常崩溃。我看过很多像这样使用Movie的教程:publicclassGIFViewextendsView{privateMoviemovie;privatelongmoviestart;publicGIFView(Contextcontext)throwsIOException{super(context);movie=Movie.decodeStr

android - 如何在单击按钮时清除android中的 Canvas

importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.graphics.Path;importandroid.util.AttributeSet;importandroid.view.MotionEvent;importandroid.view.V

android - 在 cocos2d-x 中有没有更好的方法来获取系统时间?

我正在Cocos2d-x中编写跨平台应用程序。我需要花时间在一天中的某个时间创建一个倒计时时钟。由于它是在C++中,如果需要,我可以使用time(...)、mktime(...)和difftime(...)作为直接方法。在Cocos2d-x中是否有一种以跨平台方式执行此操作的首选方法(即直接内置到框架中的方法)?我希望该应用程序在iPhone、iPad和Android上都能正常运行。 最佳答案 试试这个:time_trawtime;structtm*timeinfo;time(&rawtime);timeinfo=localtime

java - Canvas 对象必须与之前由 lockCanvas 返回的实例相同

我有一个自定义的SurfaceView,它带有绘制背景和位图的方法doDraw()。问题是当我运行它时出现错误Causedby:java.lang.IllegalArgumentException:canvasobjectmustbethesameinstancethatwaspreviouslyreturnedbylockCanvas我不明白为什么会这样。我没有在我的代码中的任何其他地方声明任何其他Canvas。我只有另外两个类,MainActivity和SurfaceViewExample。MainActivity只是有一个打开SurfaceViewExample的Intent,而

android - 如何从 SurfaceView 绘制到 Canvas?

我正在尝试做简单的画家。问题貌似Android有3个独立的Canvas给我顺序画。我用SurfaceView制作了UI,从中取出了Holder。@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sv=(SurfaceView)findViewById(R.id.sv);holder=sv.getHolder();holder.addCallback(callback);}然后拿

android - catch "RuntimeException: Canvas: trying to draw too large..."

我有一个应用程序,它从文件系统绘制图像到屏幕,如下所示:Bitmapimage=BitmapFactory.decodeFile(file.getPath());imageView.setImageBitmap(image);如果图像非常大,我会看到此错误:java.lang.RuntimeException:Canvas:tryingtodrawtoolarge(213828900bytes)bitmap.atandroid.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)atandroid.gr

Android 4.0 与 Canvas.clipPath 的兼容性问题

最近我的应用程序收到了很多评论,说“它在带有CM9的AndroidIceCreamSandwich上不工作”。我无法在运行Android4.0的模拟器上重现错误,并且由于androidmarket的工作方式,我无法联系那些人询问详细信息。幸运的是,一份崩溃错误报告引起了我的注意。我正在使用Canvas.clipPath绘制圆角...看起来有些手机在尝试使用该功能时抛出UnsupportedOperationException。快速查看Google发现在Android4.0中使用硬件加速时似乎存在问题-因此这是收到评论的潜在原因。问题是-发生了什么事?在以前的Android版本中,应用程

android - 捕获部分 Canvas 以将其用作位图

我正在做一件事情,我想把Canvas的一部分用作位图.在这里我附上了图片。我想要一个矩形的位图核心(它有Stork)这是我的程序的算法。1:创建Canvas。2:在Canvas上画一个颜色选择器。3:在Canvas上画一个矩形。现在我想将这个矩形用作位图..那么有什么方法可以使用Canvas捕捉位图吗?(我听说过Pictureclasstocaptureacanvas,我不知道它与这个场景相关). 最佳答案 所有Canvas都是位图的包装器,它公开了有用的绘图功能。因此,您可以创建一个带有位图的Canvas,然后对该位图调用crea

android - 如何从 Canvas 上删除路径区域 (Android)

我需要在ImageView上裁剪边角。不要将它们弄圆,而是从每个角上删除三角形。似乎唯一的方法是覆盖onDraw方法并使用Path从Canvas上删除这些区域。问题是我没有纯色背景,所以我需要删除这些区域而不是用一些颜色填充它们。我为此使用了以下代码:@OverrideprotectedvoidonDraw(Canvascanvas){Pathpath=newPath();path.moveTo(0,0);path.lineTo(20,0);path.lineTo(0,20);path.close();Paintpaint=newPaint();paint.setAntiAlias(t

java - 在不使用 Box2D 的情况下在 LibGDX 中制作具有碰撞和重力的游戏

我想在LibGDX中制作一个游戏,我想在其中加入一些重力,当然还有物体之间的碰撞。我可以不用Box2D吗? 最佳答案 是的,你可以。尝试为世界设置一个Vector2重力,为每个对象设置一个Vector2速度。然后每一帧使用重力修改速度。然后是使用速度的位置(例如它开始下降)。Vector2gravity=newVector2(0,-1);myobject.velocity.add(gravity);myobject.position.add(myobject.velocity.x*delta,myobject.velocity.y*