android-canvas相关内容

Android:如何检测滚动何时结束

我正在使用 GestureDetector.SimpleOnGestureListener 的 onScroll 方法在画布上滚动大位图.当滚动结束时,我想重新绘制位图,以防用户想要进一步滚动......离开位图的边缘,但我无法看到如何检测滚动何时结束(用户抬起手指从屏幕上). e2.getAction() 似乎总是返回值 2,因此没有帮助.e2.getPressure 似乎返回相当恒定的值 ..
发布时间:2021-11-27 15:33:40 移动开发

解决 Android 不再支持的 Canvas.clipPath()

从 android 3.0 开始,clipPath() 方法在启用硬件加速的设备中不再受支持.(阅读此 文章 了解更多详情. 我正在使用画布,我需要绘制圆形图像.关于如何做到这一点的任何想法? *我无法关闭硬件加速,我正在寻找其他解决方案. 回答:Tnx @Malcolm 为您解答.我找到了一个很好的例子来演示这种技术,基本上就是一个面具. 解决方案 Canvas.cli ..
发布时间:2021-11-27 15:33:30 移动开发

如何在画布上的两点之间绘制圆弧?

我在画布上有两个点,现在我可以使用 在这些点之间画一条线,如下图所示 这段代码canvas.drawLine(p1.x, p1.y, p2.x, p2.y,paint); 我想画两点之间的圆弧,如下图. 我怎么能画成这样. 解决方案 最后我从这段代码中得到了解决方案: 浮动半径 = 20;最终 RectF 椭圆 = 新 RectF();椭圆.set(point1.x - ..
发布时间:2021-11-27 15:33:02 移动开发

MediaRecorder 和 VideoSource.SURFACE,停止失败:-1007(一个严重的 Android 错误)

我正在尝试不使用 Camera 实例而是使用 Surface 视频源来录制 MediaRecorder(是的,这是可能的,但事实证明它不是那么完美) - mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); 我只是写出了什么问题: 下一个代码仅适用于某些设备,并且在最近的设备重新启动后暂时适用于某些设备或根本不 ..

在android中的画布上旋转图像

我想根据android中的特定角度旋转图像,像指南针之类的东西... 我有这个代码...它适用于 drawPath()但我想用图像替换路径和绘图的东西..我试图创建一个位图图像 ,DrawBitmapImage ,但图像不会像路径一样旋转..有任何帮助吗? public void draw(Canvas canvas) {双角 = 计算角度(当前经度,当前纬度,目标经度,目标纬度);//更 ..
发布时间:2021-11-27 15:32:47 移动开发

Android画布:在图像上绘制透明圆圈

我正在创建一个像素狩猎游戏.所以我的活动显示了一个 ImageView.我想创建一个提示“告诉我对象在哪里".为此,我需要模糊整个图像,除了围绕对象所在点的圆圈.我可以显示一个半透明的黑色背景,而不是模糊.在Canvas上画一个半透明的矩形是没有问题的.但我不知道如何从中裁剪一个透明的圆圈.结果应如下所示: 请帮助我在 Android SDK 上实现相同的结果. 解决方案 所以我终于 ..
发布时间:2021-11-27 15:32:38 移动开发

Android 画布绘制矩形

如何用等值绘制空矩形.borderWidth=3 和borderColor=black,矩形内的部分没有内容或颜色.使用 Canvas 中的哪个函数 void drawRect(左浮动,上浮动,右浮动,下浮动,油漆油漆)void drawRect(RectF rect, Paint Paint)void drawRect(Rect r, Paint Paint) 谢谢. 我试试这个例子 ..
发布时间:2021-11-27 15:32:30 移动开发

测量要在 Canvas 上绘制的文本高度(Android)

任何直接的方法来测量文本的高度?我现在这样做的方法是使用 Paint 的 measureText() 来获取宽度,然后通过反复试验找到一个值来获得近似高度.我也一直在使用 FontMetrics,但所有这些似乎都是很糟糕的近似方法. 我正在尝试针对不同的分辨率进行缩放.我可以做到,但我最终得到了令人难以置信的冗长代码,其中包含大量计算以确定相对大小.我恨它!必须有更好的方法. 解决方案 ..
发布时间:2021-11-27 15:32:21 移动开发

画布上的图像到 JPEG 文件

我正在画布上绘制 2D 图像. 我想将画布上显示的图像保存为 JPEG 文件,我该怎么做? 解决方案 创建一个空位图 创建一个新的 Canvas 对象并将这个位图传递给它 调用 view.draw(Canvas) 将您刚刚创建的画布对象传递给它.详情请参阅方法文档. 使用 Bitmap.compress() 将位图的内容写入 OutputStream,可能是文件. 伪代码 ..
发布时间:2021-11-27 15:32:09 移动开发

位图内存不足错误

在运行时,我试图在表面视图中放置一个图像.当我尝试使用 Drawable 文件夹中的图像时,出现内存不足错误.在stackoverflow中快速搜索后,我发现如果我们从资产文件夹中访问图像会有所缓解.但我仍然在运行时收到内存不足错误. 我分析并发现缩放将有助于解决此类内存相关问题.问题是我的图像大小为 1280 x 720,设备大小也相同.因此我觉得缩放不会有任何影响. 由于我们在这个 ..
发布时间:2021-11-27 15:31:58 移动开发

Android,画布:我如何清除(删除)画布(=位图),生活在一个表面视图中?

为了制作一个简单的游戏,我使用了一个模板来绘制一个带有位图的画布,如下所示: private void doDraw(Canvas canvas) {for (int i=0;i (画布在“run()"中定义/SurfaceView 存在于 GameThread 中.) 我的第一个问题是如何清除(或重绘)新布局的整个画布? 其次,如何只更新屏幕的一部分? //这是调用“doDra ..
发布时间:2021-11-27 15:31:52 移动开发

将多行文本绘制到 Canvas

一个希望很快的问题,但我似乎找不到任何示例...我想通过 CanvasViewcode>,在 onDraw() 中,我有: ...String text = "这是\n多行\n文本";canvas.drawText(text, 100, 100, mTextPaint);... 我希望这会导致换行,但我看到的是 \n 所在的神秘字符. 感谢任何指点. 保罗 解决方案 不幸的 ..
发布时间:2021-11-27 15:31:41 移动开发

带有触摸事件的画布中的图像

看起来很简单,但我在实施时遇到了问题. 我想要一个带有屏幕图像的画布,包括 onTouch 事件.我尝试过 ImageView 但我无法使用画布.我已经尝试过 SurfaceView 并且能够在屏幕上的画布中显示图像,但是我遇到了 onTouch 事件(缩放、平移)的问题. 我需要画布,因为我会在我的代码中渲染图像. 有人可以告诉我这样做的正确方法吗? 解决方案 你可以使 ..
发布时间:2021-11-27 15:31:34 移动开发

在android中将画布转换为位图图像

我正在尝试在画布上开发一个应用程序,我正在画布上绘制位图.绘制后,我正在尝试转换为位图图像. 谁能给我一个建议? 解决方案 建议取决于您要尝试做什么. 如果您担心您的控件需要很长时间来绘制,并且您想绘制到位图以便您可以对位图进行 blit 而不是通过画布重新绘制,那么您不要em> 希望对平台进行双重猜测 - 控件自动将其绘图缓存到临时位图,甚至可以使用 getDrawingCa ..
发布时间:2021-11-27 15:31:25 移动开发

用手指在 Canvas 中绘制,Android

我需要构建一个用手指在画布上绘画的项目. 如何获取我手指的触摸事件和动作事件然后绘制? 解决方案 首先浏览 sdk 示例中的 Fingerpaint 演示. 另一个示例: public class MainActivity extends Activity {绘图视图 dv ;私人油漆 mPaint;@覆盖protected void onCreate(Bundle save ..
发布时间:2021-11-27 15:31:14 移动开发

在 Android Canvas 中使用撤消/重做操作自定义画笔

我想实现一个带有自定义画笔的画布绘图应用程序 &撤消/重做操作.首先,我的代码在不使用自定义画笔(包括撤消/重做操作)的情况下完美运行.根据这个答案 如何在 android 中为画布制作自定义画笔? 我使用简单的图像尖峰来绘制位图. 现在的问题是, 撤消、重做操作不起作用,每当移动触摸点时,自定义画笔都会一遍又一遍地绘制. 问:如何使撤销/重做操作生效? 定制的刷子不光滑. ..
发布时间:2021-11-27 14:57:32 移动开发

Android Bitmap Masking (Xfermode) 留下不透明的黑色背景

我有一个自定义视图,并且在 onDraw() 中,我正在尝试执行位图屏蔽.我有一个 squareBitmap(红色)填充整个视图,我有一个 circleBitmap(蓝色)作为遮罩.我正在使用模式:PorterDuff.Mode.DST_IN. 我期待的结果是一个红色实心圆圈.我明白了,但我也得到了黑色不透明背景.我不想要这种不透明的背景,而是应该是透明的.Figure 1 是我得到的结果, ..
发布时间:2021-11-27 14:54:29 移动开发

Android BlurMaskFilter 在 canvas.drawOval 中没有效果,而文本是模糊的

我一直在尝试创建一个自定义视图,该视图在文本下具有模糊的形状.问题是 BlurMaskFilter 对我在画布上绘制的任何形状都没有影响.这是我在构造函数中初始化 Paint 对象的方式: paint = new Paint(0);Paint.setColor(0xffffffff);Paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter ..