You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy Camera在Android平台显示旋转90度,如何修复?

解决Kivy Camera在Android平台画面旋转90度的问题

方法1:在Python代码中添加Canvas旋转指令

你之前用的是KV语言的旋转写法,但因为是用Python声明式创建的Camera,得手动把旋转指令添加到Canvas里:

from kivy.graphics import PushMatrix, PopMatrix, Rotate

# 创建Camera实例
self.camera = Camera(play=True)

# 给Camera的canvas.before添加旋转逻辑
with self.camera.canvas.before:
    PushMatrix()
    self.rotate = Rotate(angle=-90, origin=self.camera.center)

# 给canvas.after添加矩阵恢复逻辑
with self.camera.canvas.after:
    PopMatrix()

# 监听Camera的尺寸、位置变化,实时更新旋转原点,避免画面偏移
def update_rotate_origin(instance, _):
    self.rotate.origin = instance.center
self.camera.bind(size=update_rotate_origin, pos=update_rotate_origin)

方法2:直接调整Camera纹理角度

部分Android设备的Camera底层输出纹理本身就是旋转状态,直接修改纹理角度更高效:

self.camera = Camera(play=True, resolution=(480, 640))  # 交换原分辨率的宽高适配竖屏
self.camera.texture.angle = 90  # 直接旋转纹理

方法3:指定相机索引

部分设备的前置/后置相机默认方向不同,尝试切换相机索引:

# 0通常对应后置相机,1对应前置相机,不同设备可能有差异
self.camera = Camera(play=True, index=0)

内容的提问来源于stack exchange,提问作者Yurben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:13:25