【LGame入门学堂008.控件篇】简单控件之LButton
2012-05-07 13:42
543 查看
【LGame学堂008】简单控件之LButton
关键字:LGame 入门 控件 LButton
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址:/article/1590928.html
-
注:以下内容是昨晚写的,不是今天写的。
现在是深圳时间晚上22点43分,好吧,笨木头我是一个不合格的程序员,23点开始我就可以上床睡大觉~所以,我这么努力地写心得,大觉多多支持~(耶~苦肉计得逞~)
好吧~本章来看看咱们游戏里必不可少的控件——按钮。
这是LGame里最简单的控件之一了,直接上代码呗:
public class GameScreen extends Screen { @Override public void onLoad() { LButton btn = new LButton("assets/btn.png"); btn.setLocation(100, 100); add(btn); } @Override public void alter(LTimerContext arg0) { } @Override public void draw(LGraphics arg0) { } @Override public void onTouchDown(LTouch arg0) { } @Override public void onTouchMove(LTouch arg0) { } @Override public void onTouchUp(LTouch arg0) { } }
糟糕,有点过于简单,以至于我不知道怎么讲解了~嘻嘻
好吧,这样就创建了一个背景图片为"assets/btn.png"且坐标在(100, 100)的按钮了~
当然,最重要的是add(btn)这一步,如果大家有下载LGame源码的,就可以看到,这一步,实际上是调用了Screen的add()函数:
public void add(LComponent comp) { if (desktop != null) { desktop.add(comp); } }
如果大家对上一章的内容还有印象的话,那就应该很清楚了,add函数就是把按钮添加到desktop里了。
OK,来点有意思的——点击事件。
点击事件是一个按钮必须有的嘛,没了它,按钮就有没有什么存在的意义了~
来,看看LButton是怎么添加点击事件的吧:
LButton btn = new LButton("assets/btn.png") { @Override public void doClick() { Log.d("LGameStudy", "糟糕,这样的设置方式是不是有点不习惯?"); } }; btn.setLocation(100, 100); add(btn);
是的,如果你是我的忠实读者的话,你应该还记得“钩子函数”(好吧,我开玩笑的,相信聪明的你早就知道钩子函数了~)。其实LButton的点击事件也是通过钩子函数的方法来实现的。LButton有个doClick()函数,只要我们重写这个函数,就可以实现点击事件了。OK,聪明的你,相信不需要我再解释了~
啰嗦一下:
其实我个人还是比较喜欢Android自带Button的那种设置点击事件的方法的(用setOnClickListener()方法),总感觉LGame这种方式有点不习惯,嘿嘿,个人爱好而已~
来~咱们再来看看一个让人兴奋的功能好不好?~
好~!
LImage[] imgs = new LImage[] {LImage.createImage("assets/btn.png"), LImage.createImage("assets/btnOn.png"), }; btn.setImages(imgs);
我们来看看LButton的setImages(LImage[] imgaes)函数,这个函数有什么用呢?很神奇的,看看官方的解释:
插入一组图像(1-4张皆可,超出忽略不计),并将它们作为LButton的按钮显示用图,以分别对应按钮未点击、点击、屏幕划过以及其它状态。
小弟暂时只试过前面两种状态,各位感兴趣的可以自己研究一下哈~
好吧,我蛮困的了,关于LButton,我就讲到这里啦,大家可以自己研究一下其它功能,关于LButton,官方文档有API的解释。
-
-
源码下载:http://download.csdn.net/detail/musicvs/4289624
原文第一次发布于Android-Fans论坛:
http://www.android-fans.net/thread-1576-1-1.html
相关文章推荐
- 【LGame入门学堂009.控件篇】简单控件之LPicture
- 【LGame入门学堂012.控件篇】简单控件之形同虚设却无比强大的LPaper
- 【LGame入门学堂010.控件篇】简单控件之LSelect
- 【LGame入门学堂011.控件篇】简单控件之解决添加控件后控件不显示的问题
- 【LGame入门学堂007.控件篇】简单控件之Desktop
- 【LGame入门学堂013.控件篇】简单控件之LMessage
- 【LGame入门学堂014.控件篇】简单控件之LPanel VS LPaper?
- 【LGame入门学堂015.控件篇】简单控件之《小人跑跑》游戏实例
- 【LGame入门学堂005.精灵传说】简单的精灵
- UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)
- WPF自学入门(六)WPF带标题的内容控件简单介绍
- 【LGame入门学堂】LGame入门之路系列(更新到016章)
- 2013 duilib入门简明教程 -- 简单控件介绍 (12)
- ASP.NET AJAX入门系列之:UpdateProgress控件简单介绍
- Android自定义View入门之简单验证码控件
- j2ee 简单网站搭建:(十一)ckeditor 控件使用入门
- UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)
- iOS部分-UI基础控件 - 01天 入门 第06课 gif的简单实用
- ASP.NET AJAX入门系列之:UpdateProgress控件简单介绍
- iOS开发入门之UIPickerView控件的简单使用