草庐IT

canvas_comment

全部标签

android - 在自定义 View 中居中缩放 - 计算 Canvas 坐标

我正在开发我的第一个“真正的”Android应用程序,一个图形工作流编辑器。绘图是在自定义类中完成的,它是View的子类。目前我的元素是矩形,它们是在Canvas上绘制的。为了检测元素上的Action,我比较坐标并检查触摸位置上的元素。为了实现缩放手势,我尝试了http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html使用4个参数的canvas.scale(...)函数,居中缩放效果很好,但我无法使用mPosX和mPosY的偏移量来计算Canvas坐标,以检测缩放后的触摸是否在元素。我尝试

android - GLES20Canvas.nDrawDisplayList 很慢

我有一个要显示的自定义View,但是我看到上面有一堆抖动。一切都滚动缓慢,并且响应不如应有的灵敏。我用traceview看到了GLES20Canvas.nDrawDisplayList似乎要为执行花费大量时间负责。有什么帮助吗? 最佳答案 GLES20Canvas.nDrawDisplayList如果您要绘制很多东西,尤其是非常大的View,预计会有很大一部分时间。如果您在整个跟踪View中都看到了这一点,答案是“减少绘制”在我的特定问题中,我在大View上绘制了一个大的alpha层。我建议阅读Android3.0HardwareA

android - 矢量在 Chrome for Android canvas 上显示不佳

我四处搜索了一下,但还没有真正找到任何可以帮助我解决这个问题的东西。我最近将我的Canvas图像切换为矢量,这在除ChromeforAndroid(在30+上测试)之外的所有方面都非常有效。特别是在这个使用EaselJS处理我的所有Canvas内容的示例中。更新:http://jsfiddle.net/mcfarljw/hnMLU/在装有Chrome的手机上查看此fiddle以查看问题。我能做些什么来让它顺利进行吗?//checkfiddleforlivecodevarstage=newcreatejs.Stage("demo");varstroke=newcreatejs.Shape

java - 在 android canvas 中拖动旋转文本无法按预期工作

我在这里缺少一些东西,所以我希望你能分享一些关于我的信息。我正在Canvas中绘制一些文本。为此,我有一个类WordpublicclassWord{privateintx;privateinty;privateStringtext;}该应用允许用户旋转文本,我使用onDraw处理旋转protectedvoidonDraw(Canvascanvas){canvas.save(Canvas.MATRIX_SAVE_FLAG);canvas.rotate(angle,centerX,centerY)...canvas.drawText(word.getText(),word.getX(),w

android - Canvas : trying to use a recycled bitmap android. graphics.Bitmap

11-2423:19:18.434:ERROR/AndroidRuntime(12660):Uncaughthandler:threadmainexitingduetouncaughtexception11-2423:19:18.684:ERROR/AndroidRuntime(12660):java.lang.RuntimeException:Canvas:tryingtousearecycledbitmapandroid.graphics.Bitmap@4384c21811-2423:19:18.684:ERROR/AndroidRuntime(12660):atandroid.g

android - android canvas 上的 Fling 实现

我有检测fling的常用手势检测器,它是一个SurfaceView的实例属性GestureDetectorflingDetector=newGestureDetector(getContext(),newSimpleOnGestureListener(){@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){//Flingimplementationreturntrue;}});我在canvas上画了很多复杂的东西,我有一个translate(dx,dy)方法,我

Android Canvas 改变一些像素颜色

我在开始时有一个Canvas对象。我需要根据当前颜色更改某些像素的颜色。我怎样才能以正确的方式做到这一点?详细信息:我从ImageView扩展了自己的类。在onDraw(Canvascanvas)方法中,我用第三方类绘制了一些东西,结果只有Canvas对象。之后我需要根据当前颜色更改某些像素的颜色。 最佳答案 假设您有名为canvas的android.graphics.Canvas对象,X和Y是点你想改变像素,所以给你调用:canvas.drawPoint(X,Y,paint);这里是你如何初始化类android.graphics.

android - 延迟在 Canvas 上绘制 - "make onDraw() slow down"

我在android中使用像drawCircle和drawPoint这样的Canvas函数。这很好用。但是现在的问题是要延迟绘制这些不同的项目,所以它看起来像一个动画。我应该使用什么样的机制?尝试过异步,但我不喜欢这种方式。我应该使用某种只按间隔绘制的计时器还是有其他巧妙的方法来做到这一点? 最佳答案 我使用这个策略,首先我以这种方式声明一个Handler和一个Runnable:privatefinalObservablemObservable=newObservable();privatefinalstaticintTIME_STE

Android SurfaceView Canvas 用线程绘制

我正在尝试使用线程在Canvas上绘图来创建一个简单的游戏引擎,但我遇到了一些我无法解释的奇怪问题。这个“游戏”的目的是每秒在Canvas上画一个圆。这行得通,但不是我想要的工作方式,应用程序似乎在两个Canvas之间切换,并在每个Canvas上添加一个圆圈,这样你每秒就可以在两个Canvas之间切换,圆圈数量相同但在不同的地方在Canvas上。我不知道我做错了什么,但我对Treadding不是很熟悉,这与我的android设备有多少核或类似的东西有关吗?我的代码如下所示,所以我只使用一个启动线程,它使用一个链接到动画线程的布局文件,动画线程启动一个线程并每秒在Canvas上绘制一个圆

js+html2canvas实现网页放大镜效果:放大镜图片使用css样式background背景图,鼠标移动使用样式background-position动态设置

实现效果:       鼠标移动到需要放大的网页上时,鼠标静止不动500毫秒后,一个长方形的放大镜框显示,放大镜中显示当前区域2.2倍的效果,并且这时候鼠标移动放大的区域也跟着变化。放大镜限制:放大镜只能在特定的区域内使用,即放大镜的移动范围有边界。实现思路:       使用html2canvas将需要使用放大镜效果的dom元素转换为图片,使用背景图的background-position属性实现鼠标移动展示对应的部分放大图片       需要注意的地方是,为了将鼠标单纯的经过、不触发放大镜效果这一情况区分开。我们可以使鼠标进入目标区域后,要求鼠标在静止不移动的状态下,等待500毫秒后才触发