草庐IT

Canvas-EventSystem-Panel

全部标签

android - 在Android中将 Canvas 保存为图像

我将类从DrawingView扩展到View并在其上绘制路径一切正常但当我试图将画布保存为图像时,它不起作用。这是我正在尝试的代码。//drawViewisanobjectofDrawingViewclassdrawView.setDrawingCacheEnabled(true);StringimgSaved=MediaStore.Images.Media.insertImage(getContentResolver(),drawView.getDrawingCache(),UUID.randomUUID().toString()+".png","drawing");if(imgSa

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 的屏幕方向时会在 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 - 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

android - 如何使用 Canvas Android 绘制 View ?

我试图在点击按钮时动态绘制View。点击按钮时,我得到一个非法状态异常说;指定的View已经有一个父View。这是动态创建View的正确方法吗?@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);draw=newDrawView(this);relativeLayout=newRelativeLayout(this);createButton=newButton(this);relativeLayout.addView(createButton);setC