kivy

Kivy for android webview 加载显示非全屏浏览器(控件化)

 Kivy webview 前几天发有一个抄来的源码,是可以正常加载网页,但是是全屏的,而且不能返回。 搜遍了google和gayhub,整合了几套源码,折腾出来了。 效果如下图,这里就不上代码了。请移步到我的 gayhub https://github.com/xiaoyaoking/kivy-android-webview   如果无法加载图片,图片地址:  https://github.com/xiaoyaoking/kivy-android-webview/blob/master/Test%20Screenshot.png?raw=true

kivy 使用webview加载网页

kivy app内访问网页 直接上源码,  webview.py from kivy.app import App from kivy.uix.widget import Widget from kivy.clock import Clock from jnius import autoclass from android.runnable import run_on_ui_thread WebView = autoclass('android.webkit.WebView') WebViewClient = autoclass('android.webkit.WebViewClient') #activity = autoclass('org.renpy.android.PythonActivity').mActivity activity = autoclass('org.kivy.android.PythonActivity').mActivity class Wv(Widget): def __init__(self, **k...

使用python开发android应用程序:第四节 使用WebView制作程序界面

 python android 介绍 SL4A r1 版本引入了内置的HTML编译器和控制WebView的api。 UiFacade模块也提供了一系列直接操作对话框和菜单的方法。想了解更多信息,请参考Ui Help部分的介绍。 使用 WebView API 中的webViewShow(url)方法是用来使用WebView打开给定URI对应的自定义HTML页面(当然也可以使用file://形式的URI)。WebView为他所有支持的语言提供基本一样的android类。 var droid = new Android(); 不过与在其他语言中不同的是,Android类在WebView中提供了一个额外的方法 registerCallback(): droid.registerCallback("event_name", function(data) { alert(data); }); 这个特定的回调函数会在指定名称的事件(event_name)抛出时被调用,例如: <html> <head> <title&...

Kivy windows 运行下报错 Unable to get a Window, abort.

只写了一个测试的脚本:  import kivy kivy.require('1.0.7') from kivy.app import App class TestApp(App): pass if __name__ == '__main__': TestApp().run()   运行报错: [INFO ] [Logger ] Record log in C:\Users\king\.kivy\logs\kivy_18-09-13_42.txt [INFO ] [Kivy ] v1.10.1 [INFO ] [Python ] v2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:22:17) [MSC v.1500 32 bit (Intel)] [INFO ] [Factory ] 194 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl...

kivy Cython交叉编译.py为 安卓(android)可使用的.so文件 保护你的python项目

kivy默认编译出来的apk中是包含你所有.py源码的,很轻松会被反编译,使用cython将.py编译为.so文件调用,会更好的保护你的源码,这里要着重说下,只是比kivy默认的要好一点,并不是不可以反编译。 但是安卓调用的.so文件需要交叉编译为arm平台的才可以,这里记录下交叉编译的步骤,我也是踩坑了好几天。 将下面代码保存为 setuparm.py 红色部分根据自己的情况修改其中 android 指定的是安卓版本 from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext   import os   os.environ['CC'] = '/home/kivydev/andr/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-...

kivy 解决因字体设置错误导致的中文乱码问题

 #引入资源目录,如res目录位于项目根目录下,写相对路径(不要写绝对路径)相当于告诉kivy DroidSansFallback.ttf字体位于res目录中 from kivy.resources import resource_add_path,resource_find resource_add_path(os.path.abspath('./res')) #替换kivy中的默认字体,使用我们的新字体 from kivy.core.text import LabelBase LabelBase.register('Roboto','DroidSansFallback.ttf')

kivy cython 编译so 错误:[WARNING] stderr: ImportError: dlopen failed: library “libc.so.6″ not found

 使用 arm-linux-gnueabihf-gcc 交叉编译出来cython 的 的so文件 调用的时候提示:[WARNING] stderr: ImportError: dlopen failed: library "libc.so.6" not found 解决办法: from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import os #复制arm-linux-gnueabi目录到 /home/kivydev/andr/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/ os.environ['CC'] = '/home/kivydev/andr/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux...

使用android NDK将.C 文件编译为 手机 可执行程序或者.so

 现有这样一个helloworld.c的源文件,如下: #include <stdio.h> int main(){ printf("Hello world!\n"); } 如何将它进行编译,并在Android上执行?这就是本文的目标。 原理 (如果只想明白怎么做的话,可以直接跳过本节。) 熟悉Android应用开发的朋友们都知道,Android上的变成都是用Java的! 也许有人会否认:“不对,Android提供的NDK是可以用C/C++等native code来开发的。” 正确,但是,NDK编译出来的是native的库文件,作为库的形式,最后还是需要由Java代码通过JNI调用的。 也许有人又会说:“NDK里面有提供只写native code而不写Java代码的方法的。” 正确,但是,你会发现这种方法还是需要自己编辑一些xml文件,实际上还是有一个Activity执行在Java虚拟机上的来调用的。 我们要达到的目标是:像在Linux一样,用一句: $gc...

cython 编译 arm .so kivy android运行后报错 empty/missing DT_HASH in “xxx.so” (built with — hash-style=gnu?)

使用 kivy 编译 apk 调用了 cython 编译的 so,运行后闪退,查看日志: stderr: importerror: dlopen failed: empty/missing DT_HASH in "core.so" (built with -- hash-style=gnu?) 查阅资料后,主要在编译的时候增加参数:-Wl,--hash-style=sysv 具体是在 setup.py 中增加编译参数 link_args=['-Wl,--hash-style=sysv']   setup(cmdclass = {'build_ext': build_ext}, ext_modules= [ Extension("core", ["core.py"], extra_compile_args=compile_args, extra_link_args=link_args) ]) 参考资料:https://stackoverflow.com/questions/28638809/andro...

cython 交叉编译arm .so

  先贴个 setup.py 的脚本,前提是先安装好 arm-linux-gnueabihf-gcc 安装命令:sudo apt-get install gcc-arm-linux-gnueabihf  教程:https://blog.526net.com/?p=3121  from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import os os.environ['CC'] = 'arm-linux-gnueabihf-gcc' os.environ['LDSHARED'] = 'arm-linux-gnueabihf-gcc -shared' sysroot_args=['--sysroot', '/path/to/xenial-armhf'] setup(cmdclass = {'build_ext': build_ext}, ext_modul...