
[英]How to take screenshot of Android(Emulator) using this library and where can i get the screenshots
[英]Kivy- Where are screenshots[screenshot()] saved on Android?
我遇到了一个大问题,当我在Android手机上使用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”部分
屏幕截图将保存到您指定的路径,在这种情况下,仅保存当前目录中的文件名,该文件名可能位于/data/data
,除非您具有root访问权限,否则其他应用程序将无法访问该文件名。 您可以使用os.getcwd()
检查脚本中的目录。
您可能只需将要保存的外部存储文件路径作为screenshot
的参数传递即可。 通常,您可以使用pyjnius查询android api以获取android建议您的应用程序应使用的文件路径。
您是否尝试查看/ storage / emulated / 0 / Pictures / Screenshot
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.