我正在尝试使用Python和gnomecanvas制作一个简单的绘图应用程序.遗憾的是,似乎没有任何关于gnomecanvas的Python绑定的文档.因此,我在使用代码示例并试图从C绑定中猜测时遇到了笨拙.
实际上,我通过在笔划中保留当前点列表并在每个新项目中从此列表生成新路径对象来使代码工作:
def get_pointer_coords(self, event):
return self.window_to_world(event.x, event.y)
def render_path(self):
path_def = gnomecanvas.path_def_new(self.cur_path)
self.current_item.set_bpath(path_def)
def button_press(self, event):
is_core = event.device is gdk.device_get_core_pointer()
if is_core:
return
self.drawing = True
(x, y) = self.get_pointer_coords(event)
self.cur_path = [(gnomecanvas.MOVETO_OPEN, x, y)]
self.current_item = self.root().add( gnomecanvas.CanvasBpath
, outline_color="#A6E22E"
, width_pixels=1
, cap_style=gdk.CAP_ROUND
)
def button_release(self, event):
self.drawing = False
def motion_notify(self, event):
is_core = event.device is gdk.device_get_core_pointer()
if not is_core and self.drawing:
(x, y) = self.get_pointer_coords(event)
self.cur_path.append((gnomecanvas.LINETO, x, y))
self.render_path()
Run Code Online (Sandbox Code Playgroud)
在我看来,这是一个相当低效的方法:每次指针移动时生成一个新对象; 并且考虑到我从平板电脑获得亚像素精度这是相当经常的.
我的问题是:有没有一种方法可以简单地附加到每个指针运动的现有bpath,就像在这个库的C版本中一样? …
我有Eclipse和Java SE,我正在运行Windows XP,我正在尝试为Eclipse设置Android.
我先来:
访问http://developer.android.com.2.在出现的主页面上,单击链接以下载Android SDK.3.找到适合您的操作系统的链接(Windows,Mac OS X或Linux).4.单击链接开始下载.
我安装了Android SDK工具
然后我按照下载ADT插件的方式安装了ADT(注意我使用的是http而不是https).
http://developer.android.com/sdk/installing/installing-adt.html
它给了我一些错误,说我需要安装的东西,如果我安装了Java EE就可以安装.
我看到一个网站说进入SDK管理器,所以我尝试安装somethind,它给了我这个错误:
[2012-06-28 14:32:27 - DDMS]找不到DDMS文件:K:\ Android\platform-tools\adb.exe [2012-06-28 14:32:27 - DDMS]未找到DDMS文件: K:\ Android的\平台工具\ adb.exe
这意味着什么,以及如何让Android工作.我还需要Java EE为Android设计的一些东西吗?
我正在阅读的书中的文字总结如下
"从技术上讲,构造函数不能被覆盖,因为它们与当前类具有相同的名称.新的构造函数被创建而不是被继承.这个系统工作正常; ......"
我不明白的部分是他们这样说的时候:
"当调用类的构造方法时,也会调用所有超类具有相同签名的构造函数方法.因此,初始化可能发生在您继承的类的所有部分"
我不明白的是相同的签名部分....它对我来说就像所有构造函数必须具有相同的签名一样,然后当你初始化一个子类对象时,所有它的超类将被自动调用而不是必须为每个子类调用super(arg1,arg2)....这是他们所说的吗?
我的代码如下:
首先,我想知道第20行:
我有两个问题:
一个.为什么将MY_MESSAGE分配给com.example.myfirstapp.MESSAGE?湾 什么是com.example.myfirstapp.MESSAGE?C.我在任何地方都做过MESSAGE; 这是自动制作成r.java文件中的变量,还是我需要在某处?
其次,关于第40行:intent.putExtra(EXTRA_MESSAGE,message);
我不确定这个方法是否会为即将被调用的活动添加消息或者是什么......部分地,由于不完全了解Intent的意义,我很难理解这一点. 我想阅读我关于一切是什么的200基本部分,但是我已经设定了截止日期,并且我被告知暂时不要采用这种方法来完成这个项目
鉴于Android Docs的解释,我知道一个意图是:
的意图本身,一个意图对象,要被执行的无源数据结构保持的动作的抽象描述
A.)有人可以解释一下使用的意图或者提供一些比文档更好的快速文章吗?
B.)更清楚地解释putExtra()的作用和这些参数:
我正在阅读有关finalize()方法的内容并且很好奇:
在finalize中清理对象(将它们设置为NULL)和从内存中删除对象的任务有什么区别?
我正在尝试使用具有不同访问修饰符的类包来创建项目,以查看具有不同访问修饰符的类的所有特征.我尝试了一个带有公共类的包,一个带有默认类,然后尝试为受保护和私有类提供另外两个,但是它说"私有类的非法修饰符;只允许使用public,abstract和final".为什么会如此.其次,测试每个类的东西是理解它的好方法.我想提出比上一篇文章更好的问题.我还想学习每个访问修饰符的应用.
我有你输入文本的TextView,然后按提交一个简单的应用程序,它体现在另一活动中的文本.但是,当我按下提交时,给我一条消息"Unfortunently Send Has Stopped"我看了SO上的其他线程,但不幸的是myfirstproject在java中停止工作错误似乎最接近他们说检查LogCat文件,它想出了不止一个错误:
07-11 19:38:01.925: E/Trace(729): error opening trace file: No such file or directory (2)
07-11 19:38:05.815: I/Choreographer(729): Skipped 451 frames! The application may be doing too much work on its main thread.
07-11 19:38:06.009: D/gralloc_goldfish(729): Emulator without GPU emulation detected.
07-11 19:38:35.046: I/Choreographer(729): Skipped 45 frames! The application may be doing too much work on its main thread.
07-11 19:38:41.427: D/AndroidRuntime(729): Shutting down VM
07-11 19:38:41.435: W/dalvikvm(729): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
07-11 …Run Code Online (Sandbox Code Playgroud) 我正在阅读一篇关于声明性编程语言的文章.
如果我不理解这种类型/范式的编程语言的质量,并且它与命令式语言形成鲜明对比,那么我是否应该阅读这种类型的编程语言(如Haskell)中的编程,然后再阅读该文章?
haskell imperative-languages imperative-programming declarative-programming