问题标签 [android-paint]

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 投票
1 回答
156 浏览

android - 如何绘制尾部淡入透明的路径

我正在创建一个简单的 Android 应用程序,其中有在屏幕上移动的粒子。

这些粒子当前是使用应用了 LinearGradient 着色器的油漆绘制的。这允许粒子沿着路径很好地淡化为透明,如下图所示。

https://i.imgur.com/2n0aMPG.jpg

着色器如下

这里的问题是着色器的边界基于路径中最前面和最后面的点的位置,因此当粒子返回自身时,着色器不再覆盖路径的中间。可以在此处看到发生这种情况的示例:https ://i.imgur.com/obEShJ6.mp4

我也尝试用越来越透明的圆圈来绘制路径上的每个点,但这些并没有给出一条连续的路径,这同样令人不快

https://i.imgur.com/zNOMR11.jpg

我还有哪些其他选项可以提供与第一张图片类似的结果,而不会出现弹跳问题?

0 投票
1 回答
169 浏览

android - 如何使 Paint.breakText 尊重自动换行?

我想计算一些文本需要多少行才能放入 fixed-width TextView。我用Paint.breakText这个:

然而,计算出来linecnt的总是比实际需要的少一。经过进一步调查,我发现 API 在单词中的任意点中断文本,但是当 TextView 布局文本时,它永远不会中断一个单词:

如何让 breakText 尊重自动换行?或者还有其他方法可以做到这一点吗?

ps 我知道我总是可以在循环中回到单词的开头,但这看起来很老套,并不适用于每种语言。我确信 Android 有一些优雅的方法可以做到这一点,但我不知道要使用的 API/标志。

pps 有时 TextView 使用破折号 (-) 将一个长单词换行,这个规则不清楚。

0 投票
0 回答
113 浏览

android - 当我们在 Android 10 中将 xfermode 用作 PorterDuffXfermode(PorterDuff.Mode.DARKEN) 时,绘制不可见

我正在使用 Paint 对象在画布中绘制背景颜色。我正在使用 xfermode 作为PorterDuffXfermode(PorterDuff.Mode.DARKEN)这种油漆。背景颜色在 Android 10 以下的设备中可见。但是当我在 Android 10 设备中运行时,背景颜色不可见。

paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DARKEN)

我在 Android Developers 网站上搜索 Android 10 中的任何行为变化,但没有发现任何与绘画相关的内容。

这是他们方面的错误还是我做错了什么?

0 投票
1 回答
154 浏览

android - 使用 Canvas 绘制镂空文字/凹凸效果

我正在尝试在我的 android 应用程序中实现这种外观。

画布

它被称为凹凸效果,文本看起来是空心的。我必须这样做,Canvas所以 TextView 不是一个选项。

我的第一个想法是在文本中以某种方式添加一个内部显示。但我找不到办法做到这一点。我尝试了很多,但找不到实现这一目标的方法。有人有什么想法吗?谢谢!

0 投票
0 回答
140 浏览

android - 如何在画布中的弧线笔划上应用radialGradient

我正在用 canvas.drawArc(...) 绘制弧线,并使用下面的代码向绘制对象添加渐变,但渐变只应用于弧线而不是笔划。如何绘制渐变笔触?

0 投票
1 回答
77 浏览

java - 如何通过触摸毕加索加载的图像进行手指绘画

我正在创建一个从 url 中提取图像并将它们放入 recyclerview 的应用程序。然后,用户可以访问这些图像并全屏查看。这是用毕加索实现的。我现在希望能够使用 onTouchEvent 或其他东西在 Picasso 加载的图像上进行手指绘画,但不知道该怎么做。

此类将图像设置为使用毕加索加载的 map_edit_gallery.xml:

编辑: 此类允许我使用画布绘制加载的图像,但无法弄清楚如何使用触摸进行绘制:

0 投票
0 回答
39 浏览

android - Android Zoom 如何正常工作?

图像中的圆圈 1 显示了正确的位置。但是当我在第二个圆圈区域绘制相同的圆圈时,会有不同的背景。我无法解决问题。你能帮帮我吗?

遇到错误图片

0 投票
2 回答
671 浏览

android - 无法在 Android 中设置自定义 imageview 的图像资源

我已经根据我在这个这个 codelab中学到的课程创建了一个自定义视图项目。在我的项目中,我不仅尝试在视图上绘制,而且还尝试在自定义ImageView. 因此,我创建了一个自定义ImageView并完成了上述官方代码实验室中的所有步骤。这是我的自定义ImageView类:

这就是我的 XML 布局的MainActivity样子(在 codelab 中没有人,他们只是以编程方式使用自定义视图):

这是我的MainActivity.kt课:

我的问题是:我要绘制的图像资源未显示。绘图部分的工作方式与代码实验室中的一样。但是R.drawable.ic_launcher_foreground我只想用于测试目的的drawable没有显示在屏幕上。为什么 ?

我希望有人能帮忙。

0 投票
1 回答
32 浏览

android - 如何用不同的颜色绘制相同的png图标?

我有一个图像模板,它在透明背景的顶部包含一个纯白色图标。我怎样才能用不同的颜色(例如:蓝色、黄色等)绘制这个图标?例如,我想在某个地方用黄色打印它,在另一个地方用蓝色打印它。

0 投票
0 回答
246 浏览

android - 画布 drawText 和表情符号 alpha 颜色

android 关于文本易读性的设计建议(https://material.io/design/color/text-legibility.html#legibility-standards)说字体使用黑色,Alpha 为 87% 或 60%,具体取决于文本的重要性。所以我在我的画布上画出这样的文字:

这对文本很有效,它看起来有点灰而不是纯黑色,但是,表情符号也用 alpha 绘制,对于彩色图像,使用 Alpha 绘制它并不好 :(

例如,在 iOS 上,表情符号的绘制不考虑字体颜色的 alpha。在 Android 下有什么方法可以在画布上使用字体颜色 alpha 绘制文本,该文本将仅应用于文本而不应用于文本中包含的表情符号?