问题标签 [android-canvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
22654 浏览

android - 将视图转换为位图

可能重复:
将视图转换为位图而不在 Android 中显示?

我正在尝试从以下参考链接将视图转换为位图

链接文本

现在的问题是我如何才能获得仅从视图转换的位图。在示例中作者使用了 relativelayout.dispatchDraw(c) 但这一行给了我编译时错误,即

ViewGroup 类型的方法 dispatchDraw(Canvas) 不可见

这是我的代码,我在 onCreate 函数中编写了以下代码

这里returnedBitmap应该包含(ImageView和TextView)的图像,但是这个位图只包含relativeView的bacground位图,即bgblack

0 投票
4 回答
43809 浏览

android - 在 Canvas 上绘制平滑缩放的位图

这就是我BitmapCanvas我的 Android 应用程序中使用的方式:

但是,Bitmap缩放不平滑,不执行抗锯齿。如何启用抗锯齿?

0 投票
1 回答
4030 浏览

android - Android Canvas 绘制文本并随后更改文本

我创建了一个服装视图,并在 onDrawMethod 上开始绘制一些东西。一些矩形、线条和文本。

现在,我想在 OnTouchEvent 之后更改此文本。

我的问题是,我不知道如何删除旧文本。目前,在 TouchEvent 之后显示的第二个文本与我的旧文本重叠。我应该用新文本重绘我的孔视图吗?

0 投票
1 回答
771 浏览

android - 如何在通知栏上绘图?

我需要绘制一个在通知栏上绘制的矩形,但我无法让它工作。代码如下所示:

0, 0只是在通知栏下方,而不是在通知栏上方。如何在通知栏上绘图?

0 投票
2 回答
1099 浏览

android - 如何实现 DrawLine 函数?

问题:除了在输入点上画圆之外,有没有更好的方法来实现在屏幕上画线的功能?

详细信息:我正在尝试编写一个基本上会画一条线的函数。但是这条线不会是一条常规的彩色线。这条线将让用户通过这条线将像素从一个图像复制到另一个槽,你可以认为它就像 Photoshop 上的“历史画笔”或“图章”。我的第一个想法就是得到分数并在每个点上画圈。哪个工作但不顺利并且有一些错误。第一个问题是如果用户扫过他的手指太快它不起作用。我认为如果我可以在两点之间填充点然后画线,这会解决问题,这是一种工作,但这次画得非常慢。另一个问题是它看起来从不平滑。

0 投票
3 回答
40837 浏览

android - 了解 Canvas 和 Surface 概念

我正在努力理解绘制到SurfaceView整个系统的过程,因此Surface是在 Android 中使用Canvas的整个系统。Bitmap

我已经阅读了所有文章和 API 文档页面,我可以在 android-developers 网站上找到它们、一些 android 图形教程、LunarLander 源代码和这个问题

请告诉我,这些陈述中哪些是正确的,哪些不是,以及为什么。

  1. Canvas有它自己的Bitmap附属物。Surface有它自己的Canvas附属物。
  2. 所有View的窗口共享相同Surface,因此共享相同Canvas
  3. SurfaceView是 的子类View,与其他View的子类和它自己不同View,它有自己的Surface可借鉴之处。

还有一个额外的问题:

  • 为什么需要一个Surface类,如果已经有一个Canvas用于高级操作的位图。举一个Canvas不适合做Surface可以做的工作的例子。
0 投票
1 回答
1042 浏览

android - Android Surface 和 ScreenResolution

举例来说,我的游戏是为 android 1.5 开发的。所以它在任何安卓手机上默认使用最低分辨率。这很棒,游戏运行得很快。

现在我添加了对 scoreloop 的支持,这要求我的游戏支持 android 1.6。当我运行游戏时,我意识到一切都变小了,因为我使用单位尺寸而不看屏幕密度。

现在我固定了尺寸。我意识到我的游戏似乎有点不稳定。我相信在新的屏幕分辨率上重绘是问题所在。

我在 SurfaceView 的画布中绘制我的游戏。我怎样才能让它更快?我使用drawCircle、drawLine等默认函数...我相信降低屏幕分辨率应该会有所帮助,因为我不需要高屏幕分辨率。我只是不知道如何或是否可能。

或者可能在opengl中做我的绘图也会解决这个问题。

0 投票
2 回答
2712 浏览

android - Android 部分反别名

我正在编写一个应用程序,它可以像 Google 地图一样在图块中显示大位图。服务器将我绘制的位图发送到缩放/翻译的画布中。我希望这个位图被绘制为抗锯齿,但如果我在画布上启用抗锯齿,位图的边缘会与背景(无/黑色)混合并在图块之间产生难看的暗线。有没有办法告诉Android不要在绘图时对位图的边缘进行抗锯齿处理?或者该问题还有哪些其他解决方案?

0 投票
2 回答
1135 浏览

android - Android:SurfaceView 和 Z 级问题

我有一个 FrameLayout,其中首先包含一个 SurfaceView,其次是一个 RelativeLayout,后者又包含各种 Button 和 TextView。

在 SurfaceView 的画布上,我绘制了许多位图,并且通过触摸和运动事件允许用户拖动它们。

这些位图在拖动时会在相对布局内的按钮等下方传递。

现在,我(可能是错误的)理解 SurfaceView 的“Z 级”,或者它所具有的任何东西,与布局其余部分的实际Z 级完全无关。是这样吗?如果是这样,我该如何绕过它,以便将拖动的位图绘制在其他视图之上?或者我可以通过什么其他方式实现全屏画布,但又不让我的按钮等像叠加层的控件一样起作用。

我想我真正需要的是一个底层,触摸事件仍然可以被下面的按钮等拾取。但我不知道如何实现这一点,因为在重绘 Canvas 时,我还必须重绘背景。

能不能把FrameLayout里面RelativeLayout和SurfaceView的顺序调换一下,然后让Canvas的背景透明?如果有怎么办?触摸事件是否仍会“落入”下方的按钮?

感谢您对我的包容,我知道我有点像华夫饼。

0 投票
2 回答
803 浏览

android - 在 android 中使用其他视图在屏幕上绘图

在过去的几个小时里,我一直在寻找一个非常愚蠢的问题的答案。如果您扩展视图类,修改 onDraw 并将 setContentView() 设置为该类的新实例,我知道如何在 android 的画布上绘图。但是,我还需要在活动底部有 2 个 TextView 和 2 个 EditText,如果 setContentView() 设置为只有该视图,这些视图显然不会显示。怎么能把这些都放到屏幕上呢?

编辑:这是我的代码:(包名是 android.physicsengine)

和xml