草庐IT

canvas2d

全部标签

android - 在 Canvas 上绘制位图已缩放

我创建了一个带有两个位图的自定义View。当我在我的View之外使用位图时,在ImageView中,图像正常。我必须调用setDensity(240)(hdpi设备),但没关系。但是,在自定义View中,当我在Canvas上绘制相同的位图时,在onDraw(Canvas)重写方法中,它再次缩放,与我不调用setDensity时的方式相同(240)。通过调试,我确保调用后Canvas和位图的密度为240。代码:@OverrideprotectedvoidonDraw(Canvascanvas){_ingredient.setDensity(240);canvas.setDensity(2

android - 我无法在 Android 上使用 box2D 初始化一个新世界

我在“库”选项卡中添加了gdx.jar和gdx-backend-android.jar。我得到java.lang.UnsatisfiedLinkError:newWorldforgravity=newVector2(0,10f);world=newWorld(gravity,false);googlesourcecodetracker中的所有问题都帮不了我。 最佳答案 您只使用我假设的box2d包装器。在这种情况下,您必须通过System.load("gdx")自己加载本地程序。 关于a

android - 为什么我在更改 Android 的屏幕方向时会在 Canvas 上出现空指针异常?

我的程序在以任何旋转/方向启动时都运行良好,但是当我在运行时更改横向纵向之间的方向时,由于我的Canvas,我得到一个空指针异常。@Overridepublicvoidrun(){while(running){if(surfaceHolder.getSurface().isValid()){Canvascanvas=surfaceHolder.lockCanvas();canvas.drawColor(Color.BLACK);//NULLPOINTEREXCEPTIONherepaint(canvas);//anotherfunctionofminesurfaceHolder.unl

android - 在 Canvas 上绘图时如何填充父对象

我有一个自定义View(android),它绘制一个自定义进度条。我想让进度条填满它的父View(宽度)。我遇到的问题是我不知道自定义View如何获得其真正的​​限制。它需要知道宽度限制以便以正确的比例显示不同的颜色。我通过以下方式实现了onMeasure():@OverrideprotectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){setMeasuredDimension(widthMeasureSpec,15);}然后,在我的onDraw()中,当我调用getWidth()时,我得到:1073742246。我

android - 在(旋转的) Canvas 上绘制文本的 x 和 y 坐标?

我正在尝试使用Paint在Canvas上绘制文本,但我似乎无法找出合适的x和y来赋予它。如果我记录getWidth和getHeight,我可以看到View实际上给出了旋转Canvas的宽度和高度。因此,它类似于20X240。我所拥有的很接近,但我只希望文本在垂直和水平方向上都居中。关于我如何做到这一点有什么想法吗?这是现在的样子:这是我的代码:publicclassVerticalTextextendsView{privatePaintmTextPaint;privateStringmText;privateintmAscent;publicListLabelView(Contextc

android - Android glTexSubImage2D 是否有效?

有没有人有在Android上使用glTexSubImage2D()的工作代码,最好是通过NDK,但即使只是在Java中?在我的代码中,glTexImage2D()工作正常,但glTexSubImage2D()在代码中同一点的同一纹理上却不行。相同的代码在我的桌面系统上运行正常。在Android上使用glTexSubImage2D()是否有任何隐藏的问题? 最佳答案 根据我们的经验,glTexSubImage2D()无法正常工作的问题只出现在HTCAndroid手机中-至少在我们尝试过的型号中:DesireHD、DesireZ和X31

android - Canvas 随机移动

我正在研究动态壁纸。但首先我必须学习Canvas动画。我这里有一个代码可以正常工作。它使用math.random()。但我想要的是这样的。在这里,我希望图像像上面所示的路径一样移动。我的想法是对x和y使用math.random。但使用它的问题是图像会出现在屏幕的任何地方。我想要图像,以创建随机路径。我知道它的x和y坐标,但我想不出路径将如何随机触发?我实际上无法解释。但是如果你知道弹跳球,球有一个随机坐标。就这样。这是我的代码。publicclassMainActivityextendsActivity{privateGamegame;publicHandlerupdateHandle

安卓: Canvas 不缩放

我有一个自定义View,它在onDraw()中在Canvas上绘制一些位图。绘图正在工作。查看代码fragment:@OverrideprotectedvoidonDraw(Canvascanvas){//TODOAuto-generatedmethodstubsuper.onDraw(canvas);canvas.save();if(appInitialized){hsSide.draw(canvas);scaleA.draw(canvas);scaleB.draw(canvas);}canvas.scale(mScaleFactor,mScaleFactor,pivotX,pivo

java - Android屏幕坐标到 Canvas View 坐标

我正在尝试将我的屏幕x和y坐标转换为用于在屏幕上绘制的坐标。所以我从我的触摸监听器触发的MotionEvent中获取我的屏幕X和Y坐标。我认为它应该像将那些乘以用于在Canvas上绘制的矩阵一样简单,所以我在创建View时创建了Matrix实例matrix=newMatrix();当voidonDraw(Canvascanvas)被调用时,我将Canvas的矩阵设置为我在构造函数上创建的矩阵,并将我所有的转换应用于矩阵matrix.reset();canvas.setMatrix(matrix);canvas.translate(getWidth()/2,getHeight()/2);

android - View 不适合 Canvas 比例的 Canvas

当我尝试将我的Canvas缩放为绘制SCALEDView时,我的View实际上已缩放,但View被裁剪了。(可能是因为它的布局参数?)publicvoidonDraw(Canvascanvas){canvas.scale(2f,2f);view.draw(canvas);}简单图片:调用新的onDraw后的图像,例如当我单击此按钮时:当Canvas缩放时,按钮应该是全尺寸的。您有解决办法吗?附注呼唤view.invalidate();view.requestLayout();没有帮助。我正在使用MyDragShadowBuilder,因为我希望在拖动View时将View放大一倍。pri