2016-07-18 1 views
0

J'essaie de créer une application sur Android avec laquelle vous remplissez quelques entrées de texte, puis donnez votre signature sur un espace marqué à gauche pour cela, j'ai 2 boutons, un pour effacer et un pour l'exportation de la fenêtre en tant que png, cependant quand je buildozer cela comme un .apk et alors le courir sur ma tablette tout semble toujours bien, et en appuyant sur le bouton d'exportation ne donne pas une erreur, mais je ne peux pas trouver une image pour la vie de moi, quelqu'un a dit de regarder dans le répertoire le code est, mais dans mon cas c'est une application (.apk), je vais ajouter mon code, même si je ne pense pas que cela a beaucoup à voir avec le problème.Kivy - Exporter la fenêtre en tant que png sur Android

Merci pour l'aide à l'avance

__version__ = "0.2" 
from random import random 
from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.uix.button import Button 
from kivy.graphics import Color, Ellipse, Line 
from kivy.core.window import Window 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.uix.gridlayout import GridLayout 
from kivy.config import Config 
from kivy.base import EventLoop 


class MyPaintWidget(Widget): 
    Window.clearcolor = (0.95, 0.95, 0.85, 1) 

    def on_touch_down(self, touch): 
     color = (0,0,0) 
     with self.canvas: 
      Color(*color, mode='hsv') 
      d = 3 
      Ellipse(pos=(touch.x - d/2, (touch.y - d/2)+50), size=(d, d)) 
      touch.ud['line'] = Line(points=(touch.x, touch.y+50),width=1.5) 

    def on_touch_move(self, touch): 
     touch.ud['line'].points += [touch.x, touch.y+50] 


class WaentjiesApp(App): 
    display_width = 1200 
    global parent 
    def build(self): 
     global parent 
     Window.size = (self.display_width, 500) 
     parent = FloatLayout() 
     self.painter = MyPaintWidget() 
     save_button = Button(text = 'Save',pos=(0,0),size_hint=(.20,.20),on_release=self.save_canvas) 
     clear_button = Button(text = 'Clear',pos=(300,0),size_hint=(.20,.20),on_release=self.clear_canvas) 
     name_text = TextInput(text='',pos=(0,370),size_hint=(.15,.15)) 
     van_text = TextInput(text='',pos=(200,370),size_hint=(.15,.15)) 
     adres_text = TextInput(text='',pos=(0,220),size_hint=(.15,.15)) 
     waentjie_text = TextInput(text='',pos=(200,220),size_hint=(.15,.15)) 
     name_label = Label(text='Naam',pos=(0,450),size_hint=(.15,.15),color=(0,0,0,1)) 
     van_label = Label(text='Van',pos=(200,450),size_hint=(.15,.15),color=(0,0,0,1)) 
     adres_label = Label(text='Adres',pos=(0,300),size_hint=(.15,.15),color=(0,0,0,1)) 
     waentjie_label = Label(text='Waentjie',pos=(200,300),size_hint=(.15,.15),color=(0,0,0,1)) 
     handtekening1_label = Label(text='Handtekening',pos=(400,350),size_hint=(.15,.15),color=(0,0,0,1)) 
     handtekening2_label = Label(text='......................................................................................................................................',pos=(600,190),size_hint=(.15,.15),color=(0,0,0,0.5)) 
     agtergrond = Label() 
     parent.add_widget(handtekening2_label) 
     parent.add_widget(self.painter) 
     parent.add_widget(save_button) 
     parent.add_widget(clear_button) 
     parent.add_widget(name_text) 
     parent.add_widget(van_text) 
     parent.add_widget(adres_text) 
     parent.add_widget(name_label) 
     parent.add_widget(van_label) 
     parent.add_widget(adres_label) 
     parent.add_widget(waentjie_text) 
     parent.add_widget(waentjie_label) 
     parent.add_widget(handtekening1_label) 
     return parent 

    def save_canvas(self, obj): 
     global parent 
     parent.export_to_png('b.png') 

    def clear_canvas(self, obj): 
     self.painter.canvas.clear() 


WaentjiesApp().run() 

certaines des variables et des noms peut sembler bizarre, mais l'anglais est pas ma langue maternelle, donc je tendance à choisir des noms d'autres-Langage

+0

essayez de vérifier si un répertoire existe, sinon, créez-le. Utilisez le chemin absolu. – EL3PHANTEN

+0

désolé, je vous ai manqué là, l'esprit d'expliquer plus brièvement? –

+0

Vous pouvez vérifier si un dossier spécifique existe. "/ data/storage/0/quelque chose" par exemple. Si ce n'est pas le cas, faites en sorte que votre application crée ce répertoire. Et toujours utiliser le chemin absolu. "/data/storage/0/something/b.png". – EL3PHANTEN

Répondre

2

Le fichier est enregistré dans le répertoire en cours, auquel vous pouvez accéder avec par exemple os.path.realpath('.') de votre script. Ce répertoire n'est pas accessible aux autres applications. Si vous souhaitez accéder au fichier à partir d'autres applications, enregistrez-le quelque part dans le répertoire de stockage externe (avec Kivy, vous pouvez utiliser App.user_data_dir).

+0

et 'os.getcwd()' va retourner votre répertoire de travail en cours – EL3PHANTEN

+0

ok, je vais l'essayer –

+0

Je vois ce que vous vouliez accomplir, mais cela n'a pas fonctionné, désolé: - ( –