libgdx如何调用android平台内容
使用libgdx已经有一段时间了.最近经常有朋友问我如何在libgdx中调用android的内容.
正常来说libgdx是跨平台的,gdx中的代码是不允许有任何其他平台的相关代码,但实际使用时经常会有调用其他平台内容的需求.其实这个也很简单,利用java中的事件机制很容易实现,下面贴出相关代码:
1:BsuEvent是一个虚类,用来实现消息通知及响应消息后执行的一些操作.
public abstract class BsuEvent {
public abstract void notify(Object obj,String msg);
}
2:libgdx主类代码,构造函数中带入了一个BsuEvent对象,这个对象赋给bevent,以后想什么时候调用android中的内容,执行bevent的notify方法并带入执行消息字符串就可以了。
public class BsuGame extends Game {
public BsuEvent bevent = null; //用于通知desktop或android等其他平台执行某些操作
public BsuGame(BsuEvent be){
bevent = be;
bevent.notify(this, "test");
}
@Override
public void create() {
}
@Override
public void dispose() {
super.dispose();
}
}
3:这里是android客户端的主类我们可以看到在BsuGame构造函数中实现了一个匿名内部类BsuEvent实例,并覆盖了它的虚方法notify.notify中就是要调用的android内容,由于是在android环境下,所以我们可以随心所欲的调用android内容Toast,来实现显示一条浮动消息的功能.
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
initialize(new BsuGame(new BsuEvent(){
@Override
public void notify(Object obj, String msg) {
Toast.makeText(MainActivity.this, "libgdx消息通知", Toast.LENGTH_SHORT).show();
}
}), cfg);
}
}
仅供初学者参考,高手就不要来拍砖了.
libgdx如何调用android平台内容的更多相关文章
- Android平台下使用lua调用Java代码经验总结
动态语言以其执行的灵活性,可配置性.方便调试能够为开发带来极大的方便.假设用好了.能够极大的提高开发的效率. 怪不得像游戏开发这样复杂的软件开发里没有不集成脚本语言的. 当中,lua以其小巧,灵活.方 ...
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...
- XE5 ANDROID平台 调用 webservice
服务端需要midas.dll XE5对android的平台支持很有吸引力,虽然目前用来直接开发应用到安卓市场卖赚钱可能性估计不大(安卓市场目前国内好像都是免费的天下),但是对于企业应用很是很有帮助 ...
- Unity调用Android类方法
Unity调用Android类方法 1. 添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo. 由于Unity的版本不同,直接在Unity安装包文 ...
- Android平台免Root无侵入AOP框架Dexposed使用详解
Dexposed是基于久负盛名的开源Xposed框架实现的一个Android平台上功能强大的无侵入式运行时AOP框架. Dexposed的AOP实现是完全非侵入式的,没有使用任何注解处理器,编织器或者 ...
- 深入了解android平台的jni(二)
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.要掌握jni,就必须熟练掌握Andr ...
- Unity3D之移植学习笔记:移植到Android平台更好的方法
接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...
- Unity3D之移植学习笔记:移植到Android平台
首先,我们需要一台已经配置好可以开发Android应用的计算机,这里我使用的是Windows系统+Eclipse+ADT的开发环境,当然也可以使用Android Studio或者使用Mac系统都可以. ...
- 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)
第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...
随机推荐
- boa-0.94.13:Hello CGI
CGI是什么 CGI全称是CommonGateway Interface,简称CGI,中文名叫做通用网关接口. CGI程序就是符合CGI接口规范的程序,相对于WebServer来说也叫外部程序. CG ...
- Delphi 设置文件属性
复制代码uses FileCtrl; procedure TForm1.BitBtn1Click(Sender: TObject);begin with OpenDialog1 do if Execu ...
- c#1所搭建的核心基础之类型系统的特征
类型系统的特征简介 几乎每种编程语言都有某种形式的一个类型系统.类型系统大致被分为:强/弱,安全/不安全,静态/动态,显式/隐式等类型. c#在类型系统世界中的位置 c#1的类型系统是静态的.显式的和 ...
- 关于Android配色 自适应颜色的实现
在Android4.4系统中,更加详细地介绍了关于颜色的细节并提供了使用colour的新教程,以使我们的应用更加独一无二.也就是说,作为一个设计师或者开发者,为你的APP做完美的配色已经变成了你的职责 ...
- ABP启动配置
ABP启动配置 返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...
- Delphi 模拟网站验证码(酷,把随机文字写道图片上)
function TfrmLabelPages.PwdImg(img: Timage): string; var I,j,k: Integer; vPoint: TPoint; vLeft: Inte ...
- expect 参数处理之一
expect 参数处理之一 expect是很强悍的脚本,网上资源虽然很经典,但很少,我把自己的测试脚本贴之,仅作参考 #!/usr/bin/expect -f proc help {} { puts ...
- C#日期函数使用大全
1 DateTime dt = DateTime.Now; 2 3 dt.ToString();//2005-11-5 13:21:25 4 5 dt.ToFileTime().ToString(); ...
- JSF之经常使用注解
@ManagedBean 以托管 bean 的形式注冊一个类实例.然后将其放入到使用当中一个 @...Scoped 凝视指定的范围内.假设没有指定不论什么范围.JSF 将把此 bean 放入请求范围. ...
- Java经典23种设计模式之创造型模式(一)
设计模式被称为程序猿的内功,之前零零散散的看过一大部分,但自己么有总结过.故此次在这里总结下.值得一提的是,设计模式并不是Java所特有.由于一直搞Android.这里就用Java为载体.最经典的设计 ...