问题标签 [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.
android - 在 Android OpenGL ES 3.1 上设置 Framebuffer 的深度/模板缓冲区
我正在尝试将深度和模板缓冲区附加到帧缓冲区。我这样做如下:
和调用返回 1282 (GL_INVALID_OPERATION) glRenderbufferStorage
。glFramebufferRenderbuffer
有什么想法我可能会错过吗?
android - 用 GLES 编写的应用程序是否与新的 Vulkan 设备兼容
我知道这似乎是一个蹩脚的问题,但我目前正在编写一个应用程序并且我没有使用 Canvas api,我正在为我的应用程序使用 GLSurfaceView 和 GLES 3.0。我担心用 Android Q Vulkan 替换 OpenGL ES,我的应用程序将无法与较新的设备兼容。
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 中的任何行为变化,但没有发现任何与绘画相关的内容。
这是他们方面的错误还是我做错了什么?
android - 如何反转 Path 对象?
我从这样的路径对象创建了一个拱门:
但我希望我不必这样做。我希望有一个类似的函数:path.reverse()。
我知道有一个路径方向类:但我不知道如何将它与 Arc 一起使用……知道如何更好地反转路径吗?
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:
我希望我再也看不到这个错误。
android - Android graphics.Camera - 如何设置垂直于表面的位置?
android 的类 import android.graphics.Camera 有一个它使用的默认位置。但是有一种方法可以改变相机的位置。
如何调整相机的倾斜度,使其垂直于表面的视图。有点像从飞机上看地面?
这是我到目前为止所尝试的:
但这并不能使视角垂直于地面。
android - 测量多行文本的紧密边界框
我正在使用 在画布上绘制多行文本StaticLayout
,并且我想在绘制之前测量文本周围最紧密的边界框(文本可能有不同的大小、字体、样式等......),我想要类似的东西那:
我希望它返回文本周围最紧密的边界框,即(如果我们谈论的是文本的像素):
如果文本是单行,我可以这样做:
但由于文本可能有多行,我必须考虑行间距和字形下降以及所有其他字体参数......所以下一个选项将是使用StaticLayout
with maximalLineWidth
(为了换行),但StaticLayout
不计算最紧凑的盒子,它会在顶部和底部添加一些填充(因为它基本上是行数乘以最大行高):
例如,绿色框是测量的结果,StaticLayout
红色框是我想要接收的框:
我该怎么做?谢谢。
android - 录屏/TextureView+其他视图的多张截图
在一个片段中,我有一个显示相机预览的纹理视图,并在其顶部绘制了几个其他视图。
我的目标是记录用户看到的内容(所有视图)的短视频,或者保存几个屏幕截图以便稍后编译成视频。
由于我不希望出现任何免责声明并与 Intent 相关联,因此我不想使用 MediaProjection。
我尝试了很多东西,但要么都不起作用,要么截取屏幕截图/记录除 TextureView 之外的所有视图,结果显示为黑色。请注意,我也不希望使用 MediaRecorder,因为它只允许我记录纹理视图,并且我希望记录所有内容/截屏。
我知道这就是 TextureView 变黑的原因。
我实际上已经设法使用 PixelCopy api 获取屏幕截图,特别是这个调用,但最低 sdk 版本是 26,我需要一个解决方案来工作最低 24 sdk 版本,否则它对我来说是一个选择......另外,理想的场景将是获取视频,而不是稍后制作视频的帧。
那么,任何人都可以指出这样做的更好方法吗?我目前没有看到任何替代方案...
同样,我想给用户一个整个屏幕显示(所有视图)的小视频。
提前非常感谢!