首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TextureView TranslationX &Y在API 23上没有预期的行为

TextureView是Android平台上的一个视图控件,用于显示可由图像或视频数据填充的纹理。TranslationX和TranslationY是TextureView的两个属性,用于指定视图在水平和垂直方向上的平移距离。

在API 23及以下的版本中,TextureView的TranslationX和TranslationY属性可能会出现一些意外的行为。具体来说,当设置了TranslationX和TranslationY属性后,TextureView的内容可能会被裁剪或显示不完整。

为了解决这个问题,可以考虑使用其他方法来实现视图的平移效果,例如使用属性动画或自定义视图的绘制逻辑。另外,也可以尝试升级到更高版本的Android API,以获得修复了这个问题的版本。

在云计算领域中,TextureView通常用于移动应用程序的图像和视频展示,例如实时视频流监控、视频播放器等场景。腾讯云提供了丰富的云服务和产品,可以与TextureView结合使用,以实现更强大的功能和性能。

以下是一些腾讯云相关产品和产品介绍链接,可以与TextureView结合使用:

  1. 腾讯云移动直播(https://cloud.tencent.com/product/mlvb):提供了高效稳定的移动直播解决方案,可用于实时视频流的推送和播放。
  2. 腾讯云视频处理(https://cloud.tencent.com/product/vod):提供了强大的视频处理能力,包括转码、剪辑、水印、字幕等功能,可用于对TextureView中的视频进行处理和编辑。
  3. 腾讯云人工智能(https://cloud.tencent.com/product/ai):提供了丰富的人工智能服务,包括图像识别、人脸识别、语音识别等功能,可用于对TextureView中的图像和视频进行智能分析和处理。

请注意,以上仅是一些示例产品,腾讯云还提供了更多与云计算和移动开发相关的产品和服务,可以根据具体需求进行选择和使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中View位置和触摸事件详解

本文Demo都是自定义View中进行,文末有下载链接 View位置参数 MotionEvent屏幕触摸事件 GestureDetector手势检测(单击,双击,长摁,滑动) 二、View位置参数...View左上角坐标 translationX、translationY:相对于父容器偏移量(有get/set方法),正数往右,负数往左 注意:View平移过程中,原始位置不会改变。...// 换算关系 x = left + translationX y = top + translationY 从API21开始增加了z(垂直屏幕方向)和elevation(浮起来高度,3D) 4、示例...,典型事件如下: ACTION_DOWN–手指刚触摸屏幕 ACTION_MOVE–手指在屏幕移动 ACTION_UP–手指从屏幕分开一瞬间 2、MotionEvent获取点击事件发生坐标 getX...只是这么想,还没有测试。 ?

1.4K51

播放视频时如何在视频帧添加水印

有同学可能会说了,我直接用TextureView渲染视频画面,然后TextureView盖一层ImageView可以吗? 好像显示效果没有什么问题,但是仔细分析还是不能满足要求?...ImageView无法实现截图功能 3.ImageView盖TextureView,会拦截TextureView事件,造成播放器交互方面的问题。...上面三个问题表示TextureView上面盖一层ImageView方式是行不通。 既然行不通,有没有方法可以解决这个问题?...接口,拥有SurfaceView全部特性,也有view所有的功能和属性,特别是处理事件能力,它主要是SurfaceView基础它加入了EGL管理,并自带了一个GLThread绘制线程(EGLContext...创建GL环境所在线程即为GL线程),绘制工作直接通过OpenGL绘制线程进行,不会阻塞主线程,绘制结果输出到SurfaceView所提供Surface,这使得GLSurfaceView也拥有了

2.9K00

高级 UI 成长之路 (一) View基础知识你必须知道

, 其中 x 和 y 是 View 左上角坐标,而 translationX 和 translationY 是 View 左上角相对于父容器偏移量。...这几个参数换算关系如下所示: val x = left + translationX val y = top + translationY 需要注意是,View 平移过程中,top 和 left...表示是原始左上角位置信息,其值并不会发生改变,此时发生改变是 x 、ytranslationX 、translationY 这四个参数。...**TouchSlop** TouchSlop 官方解释就是系统所能识别的被认为是滑动最小距离,通俗点说就是当手指在屏幕滑动时,如果两次滑动之间距离小于这个常量,那么系统就认为你没有滑动,可以通过下面的... API 简单明了,我们可以记住一个套路。

73910

使用 PreviewView 来展示相机预览

显示相机预览内容是每个相机类应用都会包含功能,想要完美实现这个却并非易事。原因是,在某些特别极端情况下 camera2 API 使用会变得很复杂,而且不同设备行为还会有所不同。...还好,Jetpack CameraX 库 PreviewView 可以帮助您解决这一问题。通过各种 Android 设备提供开发者友好、一致且稳定 API,使得展示相机预览变得不再困难。...下面的示例展示了如何使用触摸监听器 (touch listener) PreviewView 实现轻点对焦功能: fun onTouch(x: Float, y: Float) { //...Android 设备提供一致相机处理行为,这要归功于 CameraX 自动化测试实验室中对 PreviewView 及其其他 API 上进行投资。...) 实现,但是需要时候会转而使用 TextureView; 将诸如 ImageCapture 和 ImageAnalysis 这样用例绑定到 LifecycleOwner ,创建一个 surfaceProvider

2.7K20

使用 PreviewView 来展示相机预览

原因是,在某些特别极端情况下 camera2 API 使用会变得很复杂,而且不同设备行为还会有所不同。...还好,Jetpack CameraX 库 PreviewView 可以帮助您解决这一问题。通过各种 Android 设备提供开发者友好、一致且稳定 API,使得展示相机预览变得不再困难。...下面的示例展示了如何使用 触摸监听器 (touch listener) PreviewView 实现轻点对焦功能: fun onTouch(x: Float, y: Float) { //...Android 设备提供一致相机处理行为,这要归功于 CameraX 自动化测试实验室 中对 PreviewView 及其其他 API 上进行投资。...) 实现,但是需要时候会转而使用 TextureView; 将诸如 ImageCapture 和 ImageAnalysis 这样用例绑定到 LifecycleOwner ,创建一个 surfaceProvider

1.6K00

Android开发艺术笔记 | View事件体系

和translationY, x和y是View左上角坐标, translationX和translationY是View左上角相对于父容器偏移量。...并且translationX和translationY默认值是0, View也为它们提供了get/set方法,下面是这几个参数关系: x=left+translationX y=top+translationY...此时发生改变是x、ytranslationX和translationY这四个参数!!! MotionEvent和TouchSlop 1....TouchSlop 概念:系统所能识别出被认为是滑动最小距离, 即当手指在屏幕滑动时,如果两次滑动之间距离小于这个常量, 那么系统就不认为你是进行滑动操作。...建议, 如果只是监听滑动相关,建议自己onTouchEvent中实现, 如果要监听双击这种行为的话,那么就使用GestureDetector。

61130

.NET MAUI 模仿网易云音乐黑胶唱片交互实现

NowPlayingPage中HorizontalPanContainer相邻容器视图中创建影子控件,代码如下: <Grid TranslationX="{Binding Source={x:Reference...属性将绑定到拖拽物TranslationX属性,初步效果如下 拖拽区域需要两个影子控件,分别显示一曲和下一曲专辑封面。...,并设置转换器参数,代码如下: 左影子控件(一曲专辑唱盘) TranslationX="{Binding Source={x:Reference DefaultPanContainer} ,Path..., item.X + item.Width, item.Y, item.Y + item.Height, item.PitName); var isXin = (e.TotalX>0 && translationX...此时已经实现了拖拽唱盘基本功能,但是释放唱盘时,影子唱盘并没有预期那样移动到MiddlePit中心点。

35340

初识属性动画——使用Animator创建动画

与ViewAnimation区别 ViewAnimation只支持几种动画:scale、transition、rotate、alpha四种类型。并且缺陷是只是改变了显示位置,实际位置并没有改变。...Hello按钮使用ViewAnimation进行移动,点击事件移动后,但是响应还在最初位置;而属性动画移动World按钮则不同,响应是跟着按钮走。...:可以指定多久刷新一帧动画,默认值是每10s刷新一帧,但实际值还是要依赖于系统实际运行情况。...每一帧,经过这么计算,就是属性动画原理。 关于API 主要是ValueAnimator,ObjectAnimator,AnimatorSet,类结构图如下所示: ?...使用 Animator和Animation一样,既可以代码实现,也可以xml中定义,下面分别说明两种方式分别是如何操作

71120

Android 图形架构

如果没有SurfaceView,当应用需要使用如GL context(OpenGL ES context)或media decoder(Camera API)这类external buffer source...GLES可以通过把TextureViewSurfaceTexture传给创建EGL调用来TextureView渲染。... API 24 及更高版本中,建议使用SurfaceView而不是TextureView。 两者功能类似并且都是 view hierarchy 中一员。但是,它们实现方法不一样。...但TextureView某些功能实现比SurfaceView要简单,比如缩放功能实现:缩放SurfaceView需要FrameLayout自定义实现,WindowManager需要告诉SurfaceFlinger...你可以一个并不由Surface支持EGLSurface绘图,你也可以没有EGL情况下使用Surface。EGLSurface仅仅为GLES提供一个绘图地方。

1.8K21

Android实现图片在屏幕内缩放和移动效果

,之于缩放,移动,边界检查等,和普通图片缩放没有太多区别。...= event.getY(1) - event.getY(0); return (float) Math.sqrt(x * x + y * y); } /** * 判断图片大小是否符合要求 * @return..., matrix, null); } /** * 图片边界检查 * (只屏幕内) */ private void peripheryJudge(){ if (translationX < 0){ translationX...然后绘制图片时 canvas.drawBitmap(bitmap, matrix, paint); 三、ImageLoadUtils图片加载类 这个类是对传入图片进行压缩处理类,应用从系统中读取图片时用到...写这个类时,发现一些和网上说法不一样地方。 options.inSampleSize这个属性,网上说法是必须是2幂次方,但实际,我验证结果是所有的整数都可以。

1.3K30

【Android 应用开发】Android 组件 位置坐标 属性 ( 组件位置属性 | 父容器坐标系坐标 | 窗口坐标系坐标 | 屏幕坐标系坐标 | 触摸坐标 )

② top 属性 : 组件顶部 y 轴坐标 , 值为顶部距离父容器顶部高度 , 本组件左上角顶点 , 父容器坐标系 y 值 ; ③ right 属性 : 组件右侧 x 轴坐标 ,...值为右侧距离父容器左侧长度 , 本组件右下角顶点 , 父容器坐标系 x 值 ; ④ bottom 属性 : 组件底部 y 轴坐标 , 值为底部距离父容器顶部长度 , 本组件右下角顶点..., 父容器坐标系 y 值 ; III ....View 组件 x , y , translationX , translationY 属性 ---- 1 ....View 坐标获取 0 解决方案 ---- 1 . 问题描述 : 获取组件 位置 , 宽高 时 , 经常遇到获取组件值为 0 情况 , 这是因为该组件还没有绘制完成 ; 2 .

4K10

小窗播放视频原理和实现(下)

— 责任编辑 junyihan 回顾上篇小窗播放视频原理和实现(),SurfaceView它所在位置创建一个新Window,Window创建一个独立Surface,显示内容渲染在独立Surface...这使得SurfaceView绘制可以单独线程中进行,从而可以绘制复杂内容。由于SurfaceView内容没有显示宿主窗口中, 这样它显示需要同步宿主窗口变化。...1、Android L设备动画对比 1.gif 2.gif Android L设备,SurfaceView执行移动、缩放动画时,有黑边;旋转动画时,它画面不会跟随旋转,有黑边;执行透明动画时...2、Android N设备动画对比 3.gif 5.gif Android N设备,SurfaceView执行移动和缩放动画时,没有黑边;执行旋转动画时,它画面没有跟随旋转;执行透明动画时...3、Android N设备滑动对比 7.gif 8.gif Android N设备,执行滑动和缩放操作时,SurfaceView有黑边,TextureView没有黑边。

4.4K110

ConstraintLayout2.0一篇写不完之约束到底写在哪

Sectioned Constraints 前面说了,SceneConstraintSet中,你需要对每个发生变化元素创建Constraint,而且一旦你创建了这个元素Constraint,那么...Layout中这个元素所有约束都将失效,例如你修改了width,即使height没有修改,也需要重写。...Constraint位于ConstraintSet标签内部,用于描述当前约束行为,你可以把它当作是一个简化ConstraintLayout,可以在其内部创建约束,但更好做法是通过layout、motion...Transform相关状态变更,例如rotation、translationX等 PropertySet:这里你可以修改View属性,例如Visibility Motion:这里你可以修改跟MotionLayout...All the view transform API such as android:rotation.

76720

Google Jetpack 新组件 CameraX 介绍与实践

,具体地址如下: https://github.com/glumes/camera 官方并没有提到 CameraX 库具体如何进行 OpenGL 线程渲染, 继续往下看,你会找到答案~~~ 关于 CameraX...Camera 模型及 API 接口演变 https://glumes.com/post/android/android-camrea-api-evolution/ 对于一个简单能用 Camera...而预览图像最终要呈现到 Android Surface ,因此选择分辨率时候要考虑 Surface 宽高比例,不要出现比例不匹配导致图像拉伸现象。...21 cameraTextureView.setTransform(matrix) 22} TextureView 旋转设置同样 OnPreviewOutputUpdateListener...然后再把这纹理 ID 绘制到 OpenGL 对应 Surface ,这可以看成是两个不同线程允许,一个 Camera 预览线程,一个 OpenGL 绘制线程。

1.9K20

Android 端相机相关开发经验总结

因为TextureView是从Android 4.0(API level 14)开始才有的(TexturView算是SurfaceView一个增强版),所以Android 4.0之后使用是TextureViewPreview...CameraViewImpl是用来实现相机开启、设置相机参数以及实现各种相机功能核心类,根据API level不同分为三个实现子类,Camera1、Camera2和Camera2Api23,其中Camera2...是为Android 5.0(API level 21)及以上系统提供,Camera2Api23继承自Camera2,是为Android 6.0(API level 23)及以上系统提供。...相机权限 众所周知,从Android 6.0开始,Android系统引入了动态权限机制,所以如果你应用targetSDK设置23及以上的话,你需要在运行时候检查相机权限是否授予了,如果没有授予的话就要申请...很显然,三星内置相册(或者文件管理)显示图片时候会考虑图片EXIF信息,实际这图是横着,结果显示给你看时候这图旋转回来了,变成了竖着。那怎么办呢?

3.8K30
领券