成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Titanium中Android模塊開發(fā):自定義View模塊

移動開發(fā) Android
介紹一下使用Titanium的Module功能來制作自定義的View。這里只是想整理一下最低限度的步驟和方法,所以自定義的內(nèi)容只是簡單地給普通的View類添加顏色。

Porject做成

根據(jù)Titanium中Android模塊開發(fā)指南的內(nèi)容,大家應(yīng)該能很容易的創(chuàng)建一個Module的模板工程。

引用

titaniumcreate--platform=android--type=module--name=ColoredView--id=net.siso9to.coloredview--android=$HOME/devel/android-sdk-mac_x86

將做成好的模板工程導(dǎo)入到Eclipse中,Module的準(zhǔn)備工作就算完成了。

Module做成

導(dǎo)入的模板工程的包目錄下,有兩個類文件:

ColoredviewModule.java

ExampleProxy.java

這樣原封不動的也是沒有問題的,但是我們看到類名中view的***字母小寫了,不是很符合規(guī)范,所以我們使用重構(gòu)功能將類名修改為:ColoredViewModule.java。使用Eclipse的重構(gòu)功能的話,注解位置部分

Java代碼

@Kroll.module(name="Coloredview",id="net.siso9to.coloredview")

的name參數(shù)沒有給重命名,所以這里需要手動修改。

還有就是類中不用的方法,注釋等都刪去,ExampleProxy.java也要重寫做一個,所以也一并刪去。

修改之后的ColoredViewModule.java的內(nèi)容是一下這個樣子的:

Java代碼

packagenet.siso9to.coloredview;

importorg.appcelerator.kroll.KrollModule;

importorg.appcelerator.kroll.annotations.Kroll;

importorg.appcelerator.titanium.TiContext;

@Kroll.module(name="ColoredView",id="net.siso9to.coloredview")

publicclassColoredViewModuleextendsKrollModule

{

publicColoredViewModule(TiContexttiContext){

super(tiContext);

}

}

這樣就留下來了***限度代碼的Module。

自定義View做成

要做成自定義View,需要創(chuàng)建一個繼承了TiUIView的類。

然后,自定義View的時候,還需要再TiUIView的子類中生成View實例,調(diào)用setNativeView()方法將該子類保存。

Java代碼

packagenet.siso9to.coloredview;

importorg.appcelerator.titanium.proxy.TiViewProxy;

importorg.appcelerator.titanium.view.TiUIView;

importandroid.content.Context;

importandroid.graphics.Color;

importandroid.view.View;

publicclassColoredViewextendsTiUIView{

publicclassCostomViewextendsView{

publicCostomView(Contextc){

super(c);

this.setBackgroundColor(Color.GREEN);

}

}

publicColoredView(TiViewProxyproxy){

super(proxy);

CostomViewcostomView=newCostomView(proxy.getContext());

setNativeView(costomView);

}

}

Proxy做成

***,要做成一個能偶再Module中調(diào)用剛才做成的自定義View的Proxy類。

調(diào)用剛才做成的自定義View的Proxy類在做成的時候,需要繼承TiViewProxy,然后,實現(xiàn)createView(Activityactivity)方法,將自定義View的實例類返回。

Java代碼

packagenet.siso9to.coloredview;

importorg.appcelerator.kroll.annotations.Kroll;

importorg.appcelerator.titanium.TiContext;

importorg.appcelerator.titanium.proxy.TiViewProxy;

importorg.appcelerator.titanium.view.TiUIView;

importandroid.app.Activity;

@Kroll.proxy(creatableInModule=ColoredViewModule.class)

publicclassColoredViewProxyextendsTiViewProxy

{

privateColoredViewcoloredView;

publicColoredViewProxy(TiContexttiContext){

super(tiContext);

}

@Override

publicTiUIViewcreateView(Activityactivity){

coloredView=newColoredView(this);

returncoloredView;

}

}

在構(gòu)造函數(shù)中,通過setBackgroundColor(Color.GREEN)的設(shè)置,View的背景色就被設(shè)置上了。

需要注意的地方是,再做成Proxy類的時候,需要像以下這個樣子將注解的creatableInModule值設(shè)置成和Module名一樣。

Java代碼

@Kroll.proxy(creatableInModule=ColoredViewModule.class)

確認動作的Script做成

做好了Module之后,我們需要確認以下該Module是否能正常的運行,是否能達到我們需要的效果。

在確認Module的效果前,我們需要將Module集成到我們的Titanium當(dāng)中來,使用example文件夾下的app.js就能確認Module的效果。

稍微修改一下通過Titanium命令生成的example/app.js:

Js代碼

varwindow=Ti.UI.createWindow({

backgroundColor:'white'

});

varlabel=Ti.UI.createLabel();

window.add(label);

window.open();

varmodule=require('net.siso9to.coloredview');

Ti.API.info("moduleis=>"+module);

varview=module.createColoredView({

top:'100dp',

width:'100dp',

height:'100dp',

color:'#000',

});

window.add(view);

從Module經(jīng)由Proxy調(diào)用自定義View時,并不是直接的調(diào)用Proxy的createView方法,而是向上面代碼這樣:

create+Proxy名(去除Proxy)

確認動作的Script的運行

修改完app.js之后,通過ant我們來運行這個script。

在build.xml文件上點擊右鍵,選擇「DebugAs」>「2AntBuild...」

在表示出來的Ant的Task一覽中,我們選擇「clean」和「run」。

※如果只是選擇ruan的話,可能會殘留一些不必要的文件,從而引起編譯失敗,所以這里也先選上clean

然后按下「Debug」之后運行,成功啟動模擬器之后,就能看到一下的頁面了,綠色部分就是這回自定義的View。

這里只是說明了如果自定義一個View,其中***限度的省略了一些其他的代碼,如果大家要自定義View的話,應(yīng)該不會這個簡單,但是過程基本上是這樣的。

責(zé)任編輯:佚名 來源: rensanning的博客
相關(guān)推薦

2012-05-18 10:08:56

TitaniumAndroid

2012-05-18 11:16:42

@Kroll注解詳解TitaniumAndroid模塊

2016-12-26 15:25:59

Android自定義View

2016-11-16 21:55:55

源碼分析自定義view androi

2012-05-18 10:56:40

TitaniumAndroid模塊

2016-04-12 10:07:55

AndroidViewList

2013-05-20 17:33:44

Android游戲開發(fā)自定義View

2011-08-02 11:17:13

iOS開發(fā) View

2020-11-19 10:50:43

ImportPython代碼

2009-12-17 15:42:25

Rails自定義Hel

2011-08-18 17:32:55

iPhone開發(fā)Table Cell

2017-03-02 13:33:19

Android自定義View

2017-06-20 12:48:55

React Nativ自定義模塊Note.js

2013-01-06 10:43:54

Android開發(fā)View特效

2024-01-01 13:27:44

pydoc工具代碼

2021-10-26 10:07:02

鴻蒙HarmonyOS應(yīng)用

2017-03-14 15:09:18

AndroidView圓形進度條

2013-05-02 14:08:18

2009-06-08 20:13:36

Eclipse自定義控

2013-05-20 17:48:20

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 午夜视频在线 | 黄色成人免费看 | 午夜视频网站 | 在线播放精品视频 | 自拍偷拍亚洲欧美 | 国产精品国产三级国产aⅴ原创 | 真人女人一级毛片免费播放 | 国产精品免费观看 | 亚洲欧美日韩精品久久亚洲区 | 国产999精品久久久久久 | 国产成人精品午夜视频免费 | 欧州一区二区三区 | 成人在线视频网站 | 久久久99国产精品免费 | 欧美日韩国产高清 | 久久国产亚洲精品 | 日韩一区二区免费视频 | 国产精品无码永久免费888 | 精品二三区 | 神马久久久久久久久久 | 国产人久久人人人人爽 | 国产精品一区二区久久 | 中文字幕视频在线免费 | 亚洲社区在线 | 久久精品小短片 | 国产7777 | 欧美日韩国产一区二区 | 成人免费高清 | 91麻豆精品一区二区三区 | 99精品免费 | 日韩快播电影 | 日韩亚洲视频在线 | 国产a级毛毛片 | 成人在线免费电影 | 亚洲网站在线播放 | 男人av在线播放 | 狠狠av | 观看av | 在线一区观看 | 尹人av| 久久精品国产一区 |