Kivy- Android上截图[screenshot()]保存在哪里?
我遇到了一个大问题,就是在我的安卓手机上使用 screenshot() 这个功能时,我不知道截图保存在哪里。我查看了 /storage/emulated/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()`
可以忽略 "export_to_png" 这一部分。
2 个回答
0
你有没有试过去这个地方看看:/storage/emulated/0/Pictures/Screenshot
2
截图会保存在你指定的路径上,在这个例子中,就是当前目录下的一个文件名。这个目录可能在 /data/data
里,其他应用是无法访问的,除非你有超级用户权限。你可以在你的脚本里检查一下这个目录是什么,通常可以用 os.getcwd()
来查看。
你可以直接把想要保存的外部存储路径作为 screenshot
的参数传进去。一般来说,你可以通过 pyjnius 查询安卓的 API,获取安卓推荐你应用使用的文件路径。