2015-07-30 2 views
0

Я пытаюсь показать пользователю поток предварительного просмотра с камеры, используя объект Camera, который поставляется с Kivy. Когда кадр камеры является ScatterLayout, все в порядке, но позиция нестабильна (и мы обычно не хотели использовать ScatterLayout). При использовании GridLayout положение становится стабильным (по разным устройствам), но поток предварительного просмотра поворачивается на 90 градусов на устройствах Android (на моем ноутбуке все просто отлично)Вращающийся вход камеры в Kivy

Любые мысли и идеи?

Конструктор вызовов (как имена предполагает, класс CroppedCamera не делает ничего, кроме обрезки кадра Удаление это не меняет проблемы.):

self.camera = CroppedCamera(index=0, resolution=(1280, 720), rotation=camRot, ratio=imgRatio, imageBox=self) 
    self.add_widget(self.camera.outer) 

class CroppedCamera(Camera): 
    def __init__(self, ratio, imageBox, rotation, *args, **kwargs): 
    super(CroppedCamera, self).__init__(*args, **kwargs) 
    self.outer = GridLayout() 
    self.outer.rows = 1 
    self.outer.cols = 1 
    self.imageBox = imageBox 
    self.outer.add_widget(self) 
    self.outer.rotation = rotation 
    self.outer.pos_hint = {'x': 0, 'y': -0.3} 
    self.outer.size_hint = (0.8, 1) 

ответ

0

вращение кажется работать только с использованием ScatterLayout, поскольку это часть функциональных возможностей, которые приносит этот макет. Для того, чтобы только вращаться, но отключить взаимодействие с пользователем (сопротивления, масштабирование, вращение и т.д.), можно просто отключить их, установив что-то вроде:

ScatterLayout(do_scale=False, do_translation_x=False, do_translation_y=False, do_rotation=False) 
+0

Спасибо это помогло мне. ты, да, человек – CodeMode

Смежные вопросы