Titanium中Android模块开发之---自定义View模块
介绍一下使用Titanium的Module功能来制作自定义的View。
这里只是想整理一下最低限度的步骤和方法,所以自定义的内容只是简单地给普通的View类添加颜色。
Porject做成
根据 Titanium中Android模块开发指南(中文) 的内容,大家应该能很容易的创建一个Module的模板工程。
这样原封不动的也是没有问题的,但是我们看到类名中view的第一字母小写了,不是很符合规范,所以我们使用重构功能将类名修改为:ColoredViewModule.java。使用Eclipse的重构功能的话,注解位置部分
@Kroll.module(name="Coloredview", id="net.siso9to.coloredview")
package net.siso9to.coloredview;import org.appcelerator.kroll.KrollModule;import org.appcelerator.kroll.annotations.Kroll;import org.appcelerator.titanium.TiContext;@Kroll.module(name="ColoredView", id="net.siso9to.coloredview")public class ColoredViewModule extends KrollModule{public ColoredViewModule(TiContext tiContext) {super(tiContext);}}
package net.siso9to.coloredview;import org.appcelerator.titanium.proxy.TiViewProxy;import org.appcelerator.titanium.view.TiUIView;import android.content.Context;import android.graphics.Color;import android.view.View;public class ColoredView extends TiUIView {public class CostomView extends View {public CostomView(Context c) {super(c);this.setBackgroundColor(Color.GREEN);}}public ColoredView(TiViewProxy proxy) {super(proxy);CostomView costomView = new CostomView(proxy.getContext());setNativeView(costomView);}}
package net.siso9to.coloredview;import org.appcelerator.kroll.annotations.Kroll;import org.appcelerator.titanium.TiContext;import org.appcelerator.titanium.proxy.TiViewProxy;import org.appcelerator.titanium.view.TiUIView;import android.app.Activity;@Kroll.proxy(creatableInModule=ColoredViewModule.class)public class ColoredViewProxy extends TiViewProxy{private ColoredView coloredView;public ColoredViewProxy(TiContext tiContext) {super(tiContext);}@Overridepublic TiUIView createView(Activity activity) {coloredView = new ColoredView(this);return coloredView;}}
@Kroll.proxy(creatableInModule=ColoredViewModule.class)
var window = Ti.UI.createWindow({backgroundColor:'white'});var label = Ti.UI.createLabel();window.add(label);window.open();var module = require('net.siso9to.coloredview');Ti.API.info("module is => " + module);var view = module.createColoredView({top: '100dp', width : '100dp',height : '100dp',color: '#000',});window.add(view);