Kivy-Android上的屏幕截图[屏幕截图()]保存在哪里?

Kivy-Android上的屏幕截图[屏幕截图()]保存在哪里?,android,python,python-2.7,kivy,Android,Python,Python 2.7,Kivy,我遇到了一个大问题,当我在android手机上使用screenshot()时,我不知道屏幕截图会出现在哪里。我在/storage/simulated/0/Android/data中查找过,但没有找到任何内容。那里甚至没有我的应用程序文件夹 还有,有没有办法设置屏幕截图的保存位置?也许去一个更符合逻辑的地方 这是我的密码:` from random import random from kivy.uix.widget import Widget from kivy.uix.button impor

我遇到了一个大问题,当我在android手机上使用screenshot()时,我不知道屏幕截图会出现在哪里。我在/storage/simulated/0/Android/data中查找过,但没有找到任何内容。那里甚至没有我的应用程序文件夹

还有,有没有办法设置屏幕截图的保存位置?也许去一个更符合逻辑的地方

这是我的密码:`

from random import random
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.graphics import Color, Ellipse, Line
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.stacklayout import StackLayout
from kivy.clock import Clock
from kivy.uix.slider import Slider
from kivy.core.window import Window


thickness = 5

class MyPaintWidget(Widget):

    def on_touch_down(self, touch):
        color = (random(), 1, 1)
        with self.canvas:
            Color(*color, mode='hsv')
            touch.ud['line'] = Line(points=(touch.x, touch.y), width = thickness)

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







class MyPaintApp(App):

    def build(self):
        #layouts
        w = Widget()
        b = BoxLayout()
        f = FloatLayout()
        a = AnchorLayout(anchor_x= 'left', anchor_y= 'bottom')
        s = StackLayout()
        #widgets
        p = MyPaintWidget()
        cb = Button(text='Clear')
        lb = Button(pos = (150,0), text = "Large\nBrush", halign = "center")
        mb = Button(pos = (300,0), text = "Medium\nBrush", halign = "center")
        sb = Button(pos = (450,0), text = "Small\nBrush", halign = "center")
        svb = Button(pos = (600, 0), text = "Save", halign = "center")

        #adding the widgets
        w.add_widget(p)
        w.add_widget(cb)
        w.add_widget(lb)
        w.add_widget(mb)
        w.add_widget(sb)
        w.add_widget(svb)
        #w.export_to_png('ScreenShot.png')



        #bindings
        def clear_canvas(obj):
            p.canvas.clear()
        cb.bind(on_release=clear_canvas)

        def large_brush(obj):
            global thickness
            thickness = 15
        lb.bind(on_release=large_brush)

        def medium_brush(obj):
            global thickness
            thickness = 10
        mb.bind(on_release=medium_brush)

        def small_brush(obj):
            global thickness
            thickness = 5
        sb.bind(on_release=small_brush)


        def Screenshot(obj):
            global Screenshotnum
            Window.screenshot(name="Screenshot.png")

        svb.bind(on_release=Screenshot)


        return w


if __name__ == '__main__':
   MyPaintApp().run()`

忽略“导出到png”部分

您是否尝试查看/storage/simulated/0/Pictures/Screenshot

屏幕截图保存到您指定的路径,在这种情况下,仅保存当前目录中的文件名,它可能位于
/data/data
中的某个位置,除非您具有root访问权限,否则其他应用程序无法访问它。您可以使用
os.getcwd()
检查脚本中的目录


您可能只需将要保存到的外部存储文件路径传递给
屏幕截图
的参数即可。一般来说您可以使用pyjnius查询android api,以获取android建议您的应用程序应使用的文件路径。

当前目录实际上是应用程序的sdcard目录-
/sdcard/org.kivy.launcher/screenshot0001.png
您还应该更新您的答案,注意屏幕截图文件名将始终包含一个数字-因此如果您将“MyScreen.png”作为文件名传递,它将自动成为“MyScreen0001.png”(或任何适当的数字)。我使用buildozer制作APK,因此我没有使用Kivy Launcher。我可以获得操作系统模块的示例吗?还有一个与我使用pyjnius的案例相关的例子吗?当我看例子时,我会学得更好。在阅读了kivy网站上的文档后,我有点困惑。