问题标签 [android-graphics]

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 回答
59 浏览

android - 两次绘制相同的矩形看起来会有所不同

我有一个自定义视图,我意识到有些线条看起来比其他线条更暗。经过一番调查,我发现这不是一种感觉,而是现实。绘制它们的代码是相同的,但它被多次调用。如果它被调用一次,该行是浅灰色的。如果我再次调用它,这条线将是深灰色的。为什么?(Nexus 4 与 Android 5.1)

这是一个例子。右下角的瓷砖颜色较深。

例子

更新:第一个drawRoundRect负责。我注释掉了第二个,没有它我可以重现这种行为。但老实说 - 第二次调用将正确呈现它 - 深灰色。但是为什么第一次调用会使它变轻呢?

0 投票
1 回答
133 浏览

android - 缩放时如何正确缩放和Android路径

我正在尝试执行捏合以放大带有路径的自定义视图。路径应相应缩放。

以下代码可以正常工作,直到放大级别达到应用程序崩溃并显示的临界点:

A/libc:致命信号 11 (SIGSEGV),代码 2,tid 25828 (RenderThread) 中的故障地址 0xb88799c0

此外,在粉碎之前它显示:

W/OpenGLRenderer:路径太大而无法渲染成纹理

我没有缩放路径,而是尝试缩放画布。这工作正常,但放大时路径线会失真,这是不可取的行为。

0 投票
1 回答
524 浏览

android - 如何理解 setDisplay/setSurface/setPrewviewDisplay/setPreviewTexture for Android 的底层

由于 Android api level 1,我们可以使用 setDisplay 或 setPrewviewDisplay 将 MediaPlayer 或 Camera 附加到 Surface,然后图像数据可以传输到 gpu 并更快地处理。

引入 SurfaceTexture 后,我们可以使用目标 GL_TEXTURE_EXTERNAL_OES 创建自己的纹理,并将 MediaPlayer 或 Camera 附加到 opengl es。

这些都是众所周知的,但是我要说的是下面是关于Android图形架构的。(Android图形架构

生成的数据在 CPU 端,因此必须以非常快速的方式将其传输到 GPU。

为什么每台 Android 设备的数据传输速度都如此之快,以及如何将其置于底层?

或者这是一个与Android无关的硬件问题?

0 投票
3 回答
3650 浏览

android - 在圆弧上画一个圆形的空心拇指

我想创建一个圆角图,它将显示我的应用程序中的一系列值。这些值可以分为 3 类:低、中、高 - 由 3 种颜色表示:蓝色、绿色和红色(分别)。

在此范围之上,我想在相关范围部分以“拇指”的形式显示实际测量值:

见附图

根据测量值,白色拇指在量程弧上的位置可能会发生变化。

目前,我可以通过在视图的 onDraw 方法内的同一中心绘制 3 条弧线来绘制 3 色范围:

这是结果弧:

电流弧

我的问题是,我该如何:

  1. 在这 3 种颜色之间创建一个平滑的渐变(我尝试使用 SweepGradient但它没有给我正确的结果)。
  2. 如图所示 创建覆盖的白色拇指,这样我就可以控制在哪里显示它。

  3. 在我的射程弧上为这个白色拇指设置动画。

注意:3 色范围是静态的 - 所以另一种解决方案是只取可绘制对象并在其上绘制白色拇指(并为其设置动画),所以我也愿意听到这样的解决方案 :)

0 投票
1 回答
160 浏览

java - Android包含弧上的方法无法正常工作

我有自定义视图控件,如下所示:

在此处输入图像描述

在我的活动中,我希望能够通过在绿色弧上拖动这个视图来在屏幕上移动这个视图(左或右无关紧要)。

还希望能够检测是否点击了顶部的黄色弧线、中间的圆弧或底部的弧线。

我无法检测水龙头在哪个区域。这是我在活动中使用的代码:

这些是我的自定义视图控件中的公共字段:

但是在使用这种“包含”方法进行检查时,看起来它对这些区域使用了矩形,而不是弧形。正因为如此,我没有得到预期的结果。

那么,为了应用我的应用程序逻辑,我如何检测初始点击(顶部弧、底部弧、侧弧或中间位图)在哪里?

0 投票
0 回答
573 浏览

android - Android - 带有边框的文本和内部透明的自定义字体

我有一个在 SO 上多次看到的问题,但我无法通过建议的解决方案解决它。我想在使用自定义字体的文本视图中围绕我的文本放置一个彩色笔划,然后用第二种颜色填充它。在 xml 中设置文本(使用字符串)时,它工作得很好。但如果我使用 .setText(); 它不再起作用了。我只有没有填充颜色的笔触或笔触和填充颜色,但两者颜色相同。

这是处理它的 onDraw TextView 的代码:

任何帮助都会非常受欢迎。

0 投票
0 回答
961 浏览

android - 错误:找不到符号类 GraphViewSeries

我正在尝试使用 GraphView 绘制一个简单的图形,但出现编译错误:“找不到符号类 GraphViewSeries”。我还尝试添加“import com.jjoe64.graphview.GraphViewSeries;” 但得到同样的错误。请帮助解决此错误。

build.gradle 文件:

代码:

}

0 投票
1 回答
2814 浏览

android - 如何制作自定义 SeekBar 以在栏中显示颜色渐变?

出于学习目的,我想实现一个 HSV 颜色选择器,如下所示:

在此处输入图像描述

我知道我将使用SeekBars,但是如何在SeekBar.

  1. 如何在栏中显示 7 个色谱,就像图像中显示的第一个?

  2. 如何显示从白色到特定颜色的线性渐变?以及如何显示从黑色到特定颜色的线性渐变?

我不是要代码,只是要粗略地概述一下要执行的步骤吗?

0 投票
3 回答
1129 浏览

android - 调色板库:如何为调色板色板颜色添加透明度?

如何将透明度值添加到调色板的色板?就像我将颜色(swatch.getRGB())添加到线性布局一样,它显示纯色。而且我不想使用 alpha,因为它也会使布局中的其他项目变得透明。

我的代码片段:

0 投票
1 回答
25 浏览

android - Android:根据坐标在地图上显示播放器图标

我有一张要显示为背景的地图图像(固定大小),我想在它上面显示一个播放器图标。我将玩家的当前坐标设为 android.graphic.Point。

我尝试了设置边距的RelativeLayout,这有点工作,但是当显示器旋转时,图标显然被移到了别处。另外我认为这种绝对定位不能在不同的屏幕尺寸上工作......

任何建议如何按预期执行此操作?

这是我的 XML

这就是我(重新)放置播放器图标的方式