''' Pictures demo ============= This is a basic picture viewer, using the scatter widget. ''' import kivy kivy.require('1.0.6') from glob import glob from random import randint from os.path import join, dirname from kivy.app import App from kivy.logger import Logger from kivy.uix.scatter import Scatter from kivy.properties import StringProperty # FIXME this shouldn't be necessary from kivy.core.window import Window class Picture(Scatter): '''Picture is the class that will show the image with a white border and a shadow. They are nothing here because almost everything is inside the picture.kv. Check the rule named inside the file, and you'll see how the Picture() is really constructed and used. The source property will be the filename to show. ''' source = StringProperty(None) class PicturesApp(App): def build(self): # the root is created in pictures.kv root = self.root # get any files into images directory curdir = dirname(__file__) for filename in glob(join(curdir, 'images', '*')): try: # load the image picture = Picture(source=filename, rotation=randint(-30,30)) # add to the main field root.add_widget(picture) except Exception, e: Logger.exception('Pictures: Unable to load <%s>' % filename) def on_pause(self): return True if __name__ in ('__main__', '__android__'): PicturesApp().run()