`
shappy1978
  • 浏览: 698440 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iSpectrum-用Java编写iPhone程序 2

阅读更多

iSpectrum-用Java编写iPhone程序 1

    官方提供的demo截图

    先分析一下iSpectrum官方demo的框架

1 Launcher是程序入口,类似于main.m,实际上代码解构也差不多

 

	public void applicationDidFinishLaunching(UIApplication app)
	{ 
		UIWindow window = new UIWindow();
		window.initWithFrame(UIScreen.mainScreen().bounds());

		nav = new UINavigationController();
		
		UIViewController ctr = new UIViewController();
		ctr.init();
		ctr.setTitle("Action sheet");
		ctr.setView(new MainView(nav));
		
		nav.initWithRootViewController(ctr);
		
		window.addSubview(nav.view());
		window.makeKeyAndVisible();
	}

 2 看看mainview,没有delloc确实很爽,不过由于没有nib,所以只能用initWithFrame很原始的添加组件了。

 

public class MainView extends UIView {
	/**
	 * Fields
	 */
	private UIActionSheet actionSheet;
	private UINavigationController nav;
	
	/**
	 * 
	 * @param n		UINavigationController containing this view.
	 */
	public MainView(UINavigationController n){
		super();
		init();
		nav = n;
		
		/*
		 * ActionSheet
		 */
		actionSheet = new UIActionSheet();
		actionSheet.init();
		actionSheet.setActionSheetStyle(UIActionSheetStyle.UIActionSheetStyleBlackOpaque);
		actionSheet.setDelegate(new ActionSheetDelegate(this));
		actionSheet.setTitle("How many items do you want to display ?");
		actionSheet.addButtonWithTitle("Cancel");
		actionSheet.setCancelButtonIndex(0);
		actionSheet.dismissWithClickedButtonIndexAnimated(0, true);
		actionSheet.addButtonWithTitle("One item");
		actionSheet.addButtonWithTitle("Two items");
		actionSheet.addButtonWithTitle("Three items");
		actionSheet.addButtonWithTitle("Four items");
		
		/*
		 * Button
		 * Being used to open the UIActionSheet.
		 */
		UIButton button = new UIButton(){
			//@Override
			public void controlEvent() {
				// Display the UIActionSheet
				actionSheet.showInView(this.superview());
			}
		};
		button.initWithFrame(CGRect.CGRectMake(85, 30, 150, 31));
		button.setBackgroundImageForState(UIImage.imageNamed("buttonBackground.tiff"), 0);
		button.setTitleForState("Create view", 0);
		button.setTitleColorForState(UIColor.blackColor(), 0);
		button.addTargetActionForControlEvents(UIControlEvents.UIControlEventTouchUpInside);
		addSubview(button);
	}
	
	/**
	 * 
	 * @return	nav		Current UINavigationController.
	 */
	public UINavigationController getNavigationController(){
		return nav;
	}

}

 3 同样也有delegation类

 

public class ActionSheetDelegate extends UIActionSheetDelegate {
	/**
	 * Field
	 */
	private MainView view;
	
	/**
	 * 
	 * @param v		MainView that create this object.
	 */
	public ActionSheetDelegate(MainView v){
		super();
		init();
		view = v;
	}
	
	/**
	 * Method called by system when user select a button on action sheet.
	 * @param actionSheet		ActionSheet calling this method.
	 * @param buttonIndex		Index of selected button.
	 * 
	 */
	//@Override
	public void actionSheetClickedButtonAtIndex(UIActionSheet actionSheet,
			int buttonIndex) {
		if(buttonIndex == 0){
			// Click on "cancel" button
			return;
		}
		else {
			UIView newView = new UIView().init();
			
			// Add to the new UIView as many subviews as user wants.
			for(int i=1; i<=buttonIndex; i++){
				UIImageView imageView = new UIImageView();
				imageView.initWithFrame(CGRect.CGRectMake(i*40, 100, 30, 30));
				imageView.setImage(UIImage.imageNamed("img"+i+".tiff"));
				newView.addSubview(imageView);
			}
			
			UIViewController viewController = new UIViewController().init();
			if(buttonIndex == 1)
				viewController.setTitle(buttonIndex + " added item");
			else
				viewController.setTitle(buttonIndex + " added items");
			viewController.setView(newView);
			
			// Push this new view into UINavigationController stack.
			view.getNavigationController().pushViewControllerAnimated(viewController, false);
		}
	}
	
}

     从简单的demo中似乎看不到有用java的必要,因为完全无法用到java中很多功能和开源的代码,而且受到插件开发者的限制。

  • 大小: 81.5 KB
1
2
分享到:
评论

相关推荐

    ④-第一个iphone程序iPhone101

    描述部分重申了标题的内容,强调了文档的目标是教授用户如何编写第一个iPhone应用程序。这进一步确认了文档的教育性质,适合那些对iOS开发感兴趣但缺乏实践经验的新手开发者。 ### 三、标签:“第一个iPhone程序...

    驱动程序-数码产品-iphone网络共享驱动程序.zip

    标题中的“驱动程序-数码产品-iphone网络共享驱动程序”表明了这个压缩包内容的核心,即为iPhone设备提供网络共享功能的驱动程序。在Windows操作系统中,用户有时需要安装特定的驱动来使得计算机能够识别并利用...

    vecodo-luajava-master_iphone_VEC-466友人_

    "vecodo-luajava-master_iphone_VEC-466友人_" 是一个与iOS应用开发相关的项目,从标题来看,它可能是一个基于开源中国(OSCHINA)的iPhone客户端的源码,其中包含了用于实现特定功能的Luajava模块。Luajava是Lua...

    axure部件库---iOS和iPhone

    "IPhone Bodies All.rplib"可能包含各种iPhone设备的模型,如iPhone X、iPhone 11、iPhone 12等,这样设计师可以在不同的屏幕尺寸和分辨率下预览他们的设计。这些模型通常包括屏幕背景、设备边框,甚至可以包含虚拟...

    wikipedia-iphone, Wikipedia iPhone应用程序的过时版本 请使用当前版本.zip

    wikipedia-iphone, Wikipedia iPhone应用程序的过时版本 请使用当前版本 请访问维基百科/维基百科 iOS,了解当前维基百科的源代码官方维基百科应用程序生成备注如果你是为自己的手机构建这个,那么请注意你必须修改 ...

    最好的iPhone应用(第2版)--Best.iPhone.Apps.2nd.Edition

    通过这本书,您可以了解到当前市场上最受欢迎的应用程序,学习到如何高效使用这些应用的方法,以及掌握一些提高iPhone使用体验的小技巧。总之,《最好的iPhone应用(第2版)》不仅是对iPhone应用的一次全面梳理,更...

    cocos2d-objc-ext, Cocos2D iphone的扩展和实用程序类.zip

    cocos2d-objc-ext, Cocos2D iphone的扩展和实用程序类 Cocos2D扩展cocos2d-iphone的扩展和实用程序类。cocos2d-iphone-ext,将包括不同的类和库,而不是suitet发布的官方 cocos2d-iphone 。 一些类最初可以能会被...

    iOS游戏应用源代码——lhunath-Cocos2D-iPhone.old-9ab3d34.zip

    3. **脚本支持**:通过内置的 Lua 或 JavaScript 绑定,开发者可以使用这些脚本语言编写游戏逻辑,提高开发效率。 4. **音频管理**:Cocos2D-iPhone提供了音频播放功能,支持背景音乐和音效的播放,以及音量控制和...

    IOS应用源码——salemsayed-Connect4-iPhone-0ff2f00.rar

    【描述】这个压缩包中的源代码是专门为iPhone设备编写的,意味着它是用Objective-C或Swift开发的,遵循iOS平台的用户界面设计规范和编程实践。源码可以为我们提供以下学习点: 1. iOS应用架构:了解应用是如何组织...

    iPhone应用程序编程指南-中文版 pdf

    《iPhone应用程序编程指南》是一本面向开发者的重要参考资料,旨在帮助读者深入理解如何为Apple的iOS平台开发应用程序。这本书的中文版使得更多的中国开发者能够轻松掌握iOS应用开发的技术和技巧。 在iPhone应用...

    IOS应用源码——timkerchmar-cocos2d-iphone-e8c0cd1.rar

    这个项目的代码是用Objective-C编写的,它是苹果开发iOS和OS X应用的主要语言。Objective-C结合了C语言的底层控制和Smalltalk的面向对象特性,提供消息传递机制,非常适合构建动态和灵活的应用。 3. **游戏架构**...

    iOS游戏应用源代码——salemsayed-Connect4-iPhone-0ff2f00.zip

    在这个Connect4游戏中,开发者可能使用UIView来绘制棋盘,使用UIViewController管理游戏状态,通过UIButton实现用户点击下棋的交互,用UILabel显示游戏提示或得分。 游戏逻辑的实现是一个重要的部分。Connect4的...

    空间说说由iPhone发表,Java源代码

    标题中的“空间说说由iPhone发表,Java源代码”指的是一个使用Java编程语言开发的程序,这个程序能够让用户通过iPhone设备在社交空间上发布说说或者动态。这可能是一个独立的应用程序或者是某个社交网络API的Java...

    iOS实例开发源码——Devint6669-cocos2d-iphone-bedca97.zip

    2. **渲染系统**:Cocos2d-iphone使用基于OpenGL ES的渲染引擎,支持精灵、纹理、批处理渲染,以及图层混合模式,可以实现高效的2D图形绘制。 3. **动作与动画**:框架内建了丰富的动作(CCAction)类,如移动、...

    swift-使用新的iPhone状态栏测试您的应用程序

    本篇文章将深入探讨如何在Swift中使用新的iPhone状态栏进行测试,确保你的应用程序在不同环境下的表现。 首先,我们需要了解状态栏的作用和它可能的变化。状态栏显示着重要的设备信息,如时间、电池状态和网络连接...

    Cocco2D-iPhone-04.rar_Cocco2D iPhone_cocos2d_cocos2d-x_iphone 游戏

    通过这个教程,你将逐步掌握Cocos2D-iPhone的使用,能够独立开发出功能丰富的2D游戏。阅读《知易Cocco2D-iPhone开发教程-04.pdf》将是你提升游戏开发技能的重要步骤,它将带你深入到Cocos2D-iPhone的世界,助你成为...

    OpenSSL-for-iPhone-master.zip

    2. 动态/静态链接:开发者可以选择动态链接 OpenSSL 库(在运行时加载)或静态链接(将库代码编译进应用程序二进制文件中)。静态链接可以避免运行时依赖问题,但会使应用体积增大。 3. 法规遵从:在使用加密技术前...

    微信小程序-通知iphone余量小程序

    2014年9月,觉得手动抢iphone太复杂,自己写了个通知iphone余量的小程序 配置 设置app.js中第7行邮件服务器 设置app.js中第9-10行的用于发送消息的邮箱(使用SMTP协议) 设置app.js中第14行接收邮件的邮箱 注意:...

Global site tag (gtag.js) - Google Analytics