问题标签 [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 回答
252 浏览

android - 在 Android OpenGL ES 3.1 上设置 Framebuffer 的深度/模板缓冲区

我正在尝试将深度和模板缓冲区附加到帧缓冲区。我这样做如下:

和调用返回 1282 (GL_INVALID_OPERATION) glRenderbufferStorageglFramebufferRenderbuffer有什么想法我可能会错过吗?

0 投票
1 回答
154 浏览

android - 用 GLES 编写的应用程序是否与新的 Vulkan 设备兼容

我知道这似乎是一个蹩脚的问题,但我目前正在编写一个应用程序并且我没有使用 Canvas api,我正在为我的应用程序使用 GLSurfaceView 和 GLES 3.0。我担心用 Android Q Vulkan 替换 OpenGL ES,我的应用程序将无法与较新的设备兼容。

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

android - 如何反转 Path 对象?

我从这样的路径对象创建了一个拱门:

但我希望我不必这样做。我希望有一个类似的函数:path.reverse()。

我知道有一个路径方向类:但我不知道如何将它与 Arc 一起使用……知道如何更好地反转路径吗?

0 投票
1 回答
487 浏览

android - 尝试在空对象引用上调用虚拟方法“void android.view.ViewGroup.transformMatrixToLocal(android.graphics.Matrix)”

实际上,我在代码中使用了共享元素转换。友盟抓到的错误日志是:

java.lang.NullPointerException:尝试在 android.app.ActivityTransitionCoordinator.null setSharedElementMatrices(null)(ActivityTransitionCoordinator.java: 505) 在 android.app.ActivityTransitionCoordinator.null moveSharedElementsToOverlay(null)(ActivityTransitionCoordinator.java:794) 在 android.app.EnterTransitionCoordinator$3.null onPreDraw(null)(EnterTransitionCoordinator.java:204) 在 android.view.ViewTreeObserver.null dispatchOnPreDraw (null)(ViewTreeObserver.java:944) 在 android.view.ViewRootImpl.null performTraversals(null)(ViewRootImpl.java:2055) 在 android.view.ViewRootImpl.null doTraversal(null)(ViewRootImpl.java:1107) 在 android 。看法。ViewRootImpl$TraversalRunnable.null run(null)(ViewRootImpl.java:6013) at android.view.Choreographer$CallbackRecord.null run(null)(Choreographer.java:858) at android.view.Choreographer.null doCallbacks(null)( Choreographer.java:670) at android.view.Choreographer.null doFrame(null)(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.null run(null)(Choreographer.java:844) at android.os .Handler.null handleCallback(null)(Handler.java:739) at android.os.Handler.null dispatchMessage(null)(Handler.java:95) at android.os.Looper.null loop(null)(Looper.java :148) 在 android.app.ActivityThread.null main(null)(ActivityThread.java:5417) 在 java.lang.reflect.Method.null 调用(null)(Method.java) 在 com.android.internal.os。 ZygoteInit$MethodAndArgsCaller.null run(null)(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.null main(null)(ZygoteInit.java:616)

我查看了设备的版本,没有居中,包括6.0、7.0和8.0。并且设备型号也没有居中。

这是我的代码:

DetailTransition.java:

我希望我再也看不到这个错误。

0 投票
1 回答
75 浏览

android - Android graphics.Camera - 如何设置垂直于表面的位置?

android 的类 import android.graphics.Camera 有一个它使用的默认位置。但是有一种方法可以改变相机的位置

如何调整相机的倾斜度,使其垂直于表面的视图。有点像从飞机上看地面?

这是我到目前为止所尝试的:

但这并不能使视角垂直于地面。

0 投票
0 回答
41 浏览

android - 如何在android中获取视图的背景和前景像素

我有两个问题,一个与背景有关,另一个与前景有关

1:我正在尝试获取视图的背景覆盖像素,例如如图所示关于 view2 我想获取其背景覆盖的像素,该像素具有视图 1 和视图 3 的某些部分

2您可以想象 view3 的相同示例 我想获取其前景覆盖的像素(view2 的一部分)和背景像素(view1 的一部分)

我知道一些以前的知识,例如这可以得到它所在的视图的确切位置

问题示例图片

0 投票
1 回答
548 浏览

android - 测量多行文本的紧密边界框

我正在使用 在画布上绘制多行文本StaticLayout,并且我想在绘制之前测量文本周围最紧密的边界框(文本可能有不同的大小、字体、样式等......),我想要类似的东西那:

我希望它返回文本周围最紧密的边界框,即(如果我们谈论的是文本的像素):

如果文本是单行,我可以这样做:

但由于文本可能有多行,我必须考虑行间距和字形下降以及所有其他字体参数......所以下一个选项将是使用StaticLayoutwith maximalLineWidth(为了换行),但StaticLayout不计算最紧凑的盒子,它会在顶部和底部添加一些填充(因为它基本上是行数乘以最大行高):

例如,绿色框是测量的结果,StaticLayout红色框是我想要接收的框:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我该怎么做?谢谢。

0 投票
1 回答
191 浏览

android - 如何使用浮点值动态创建矩形?

我想通过使用来自服务器的浮点值来动态创建矩形形状。形状应该是精确的,如果任何值是 25.2,另一个是 25.3,那么 25.3 应该看起来更大,就像我们在图表中看到的那样。那么有什么方法可以实现这一点吗?这是图像:

在此处输入图像描述

我试图通过使用这个来改变视图大小:

但这似乎只接受整数值,如果 float 使用 double 转换为 int ,那么它将四舍五入到最接近的数字并且它将不起作用。

如何通过使用画布或视图来实现这一点?

0 投票
0 回答
56 浏览

android - 录屏/TextureView+其他视图的多张截图

在一个片段中,我有一个显示相机预览的纹理视图,并在其顶部绘制了几个其他视图。

我的目标是记录用户看到的内容(所有视图)的短视频,或者保存几个屏幕截图以便稍后编译成视频。

由于我不希望出现任何免责声明并与 Intent 相关联,因此我不想使用 MediaProjection。

我尝试了很多东西,但要么都不起作用,要么截取屏幕截图/记录除 TextureView 之外的所有视图,结果显示为黑色。请注意,我也不希望使用 MediaRecorder,因为它只允许我记录纹理视图,并且我希望记录所有内容/截屏。

我知道就是 TextureView 变黑的原因。

我实际上已经设法使用 PixelCopy api 获取屏幕截图,特别是这个调用,但最低 sdk 版本是 26,我需要一个解决方案来工作最低 24 sdk 版本,否则它对我来说是一个选择......另外,理想的场景将是获取视频,而不是稍后制作视频的帧。

那么,任何人都可以指出这样做的更好方法吗?我目前没有看到任何替代方案...

同样,我想给用户一个整个屏幕显示(所有视图)的小视频。

提前非常感谢!