当前位置:  编程技术>移动开发
本页文章导读:
    ▪在Titanium中创办Tooltip        在Titanium中创建Tooltip 在这篇文章中将说明如何在使用Titanium开发的iPhone应用中创建tooltip!有时候我们会在导航栏上放置一个图片按钮,但是一个简单的图片按钮还不能够完全让用户理解这.........
    ▪ onSaveInstanceState(Bundle outState)的调用天时        onSaveInstanceState(Bundle outState)的调用时机 Activity的方法onSaveInstanceState(Bundle outState),按照文档里说的,这个方法是在内存不够时,系统要强制杀掉这个Activity时,进行调用的。   但经过我的测.........
    ▪ Appcelerator公司是不是会在第4次收购时考虑Impact?       Appcelerator公司是否会在第4次收购时考虑Impact?! 目前的JavaScript游戏引擎可以说是琳琅满目,覆盖了各个方面,可以说是无所不能。以下文章总结了包括3D、动画、 Canvas、Math、颜色、声音、W.........

[1]在Titanium中创办Tooltip
    来源: 互联网  发布时间: 2014-02-18
在Titanium中创建Tooltip
在这篇文章中将说明如何在使用Titanium开发的iPhone应用中创建tooltip!

有时候我们会在导航栏上放置一个图片按钮,但是一个简单的图片按钮还不能够完全让用户理解这个按钮的用途。

例如:


rightNavButton 按钮点下后会有什么动作呢?这是一个ebook阅读器的app.

以下的效果如何呢:


这样用户就知道了,当我点下这个按钮的时候是继续阅读文章呢。

那么这样的效果在Titanium中是如何做出来的呢?

tooltip其实是一个设置了tip图像的背景的简单的view。


var lasttipView =  Titanium.UI.createView({
width:205,
height:57,
backgroundImage:"img/bubble.png",
top:0,
right:3
});

把“Continue reading” label添加到这个view中。

var lasttipLabel =  Titanium.UI.createLabel({
text:'Continue reading',
color:'#fff',
width:205,
height:34,
top:16,
font:{
fontFamily:'Helvetica Neue',
fontSize:13,
fontWeight:'bold'
},
textAlign:'center'
});
 
lasttipView.add(lasttipLabel);

然后把这个tip view添加到index窗口中。(当然前提是我们已经创建好了index_win。)

index_win.add(lasttipView);


现在当我们打开index_win的时候,tooltip就会被显示出来,用户就知道rightNavButton是做什么的呢。但是如果tooltip一直显示在那里的话,我们就需要想办法隐藏它。以下代码创建了一个动画,在click事件中将他显示出来。

var anim_out = Titanium.UI.createAnimation();
anim_out.opacity=0;
anim_out.duration = 250;
 
 
last_read =  Titanium.UI.createButton({
image:"img/tag1.png"
});
 
 
last_read.addEventListener('click', function() {
lasttipView.animate(anim_out);
});
 
index_win.setRightNavButton( last_read );



【原文】http://cssgallery.info/create-a-nifty-tooltip-in-titanium/
1 楼 larry1314mvp 2012-02-15  
Do you have some information about upload file in titanium.
2 楼 rensanning 2012-02-15  
以下是上传相册视频和图片的简单例子:
Titanium.Media.openPhotoGallery({
    allowEditing:true,
    mediaTypes:[Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO],
    success:function(event) {
        if (Titanium.Network.online == false) {
            return;
        }

        var xhr = Titanium.Network.createHTTPClient();

        xhr.onerror = function(e) {
            Ti.API.error(e.error);
        }

        xhr.onload = function() {
            if (this.status == 200) {
                alert(this.responseText);
                // TODO callback
            } else {
                alert("ERROR:" + this.status);
            }
        }

        xhr.open("POST", "《SERVER URL》", true);

        xhr.setTimeout(10000);

        xhr.send({var1:123, var2:456, file:event.media});
    },
    cancel:function() { },
    error:function(error){ }
});
3 楼 larry1314mvp 2012-02-17  
rensanning 写道
以下是上传相册视频和图片的简单例子:
Titanium.Media.openPhotoGallery({
    allowEditing:true,
    mediaTypes:[Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO],
    success:function(event) {
        if (Titanium.Network.online == false) {
            return;
        }

        var xhr = Titanium.Network.createHTTPClient();

        xhr.onerror = function(e) {
            Ti.API.error(e.error);
        }

        xhr.onload = function() {
            if (this.status == 200) {
                alert(this.responseText);
                // TODO callback
            } else {
                alert("ERROR:" + this.status);
            }
        }

        xhr.open("POST", "《SERVER URL》", true);

        xhr.setTimeout(10000);

        xhr.send({var1:123, var2:456, file:event.media});
    },
    cancel:function() { },
    error:function(error){ }
});

这第三个参数也太直接了把,这样岂不容易造成OOM?

    
[2] onSaveInstanceState(Bundle outState)的调用天时
    来源: 互联网  发布时间: 2014-02-18
onSaveInstanceState(Bundle outState)的调用时机

Activity的方法onSaveInstanceState(Bundle outState),按照文档里说的,这个方法是在内存不够时,系统要强制杀掉这个Activity时,进行调用的。

 

但经过我的测试,发现这个方法并不是在系统内存不够时,要杀掉Activity时,才调用的。

 

测试结果:

1. 只要Activity不finish,Activity进入后台(比如Home键,跳转到其他的Activity),则其就会调用onSaveInstanceState(Bundle outState)方法,而且这个方法是在onPause方法之间进行调用的。

2. 如果Activity是执行了finish方法,才进入的后台,则不调用这个onSaveInstanceState(Bundle outState),而且下次再进入时,也不会使用这个保存的数据。

3. 在系统杀掉Activity所在的进程时,onSaveInstanceState(Bundle outState)方法根本就没有调用过。

 

总结:系统在杀进程时,不可能有时间去执行多余的代码,也只有这种方法,才能保存Activity里的最新数据,所以onSaveInstanceState(Bundle outState)会被执行多次,并不是只有一次。


    
[3] Appcelerator公司是不是会在第4次收购时考虑Impact?
    来源: 互联网  发布时间: 2014-02-18
Appcelerator公司是否会在第4次收购时考虑Impact?!
目前的JavaScript游戏引擎可以说是琳琅满目,覆盖了各个方面,可以说是无所不能。以下文章总结了包括3D、动画、 Canvas、Math、颜色、声音、WebGL等方面66个JavaScript Game Engine.
66+ Open Source JavaScript Game Engine for Serious Developers

在GitHub上也有关于JavaScript Game Engine的一个详细列表:
Game Engines @ GitHub

值得关注的是,目前的Titanium在娱乐应用方面的发展真的是不尽人意。从移动应用目前的发展趋势,基础工具->娱乐休闲->商务应用->...... 目前的基础工具方面的应用已经初具规模,而娱乐休闲方面的应用必定是2,3年内的一个发展趋势。相信Appcelerator公司的CEO Jeff Haynie也不会轻易放弃这么大的一块市场。Impact、enchantjs、Crafty、Cocos2D、Box2D等一大批优秀的JavaScript Game Engine是否会是Appcelerator公司猎物呢?

值得一提的是,德国人Dominic Szablewski在2010年发布Impact,一个相当专业的JavaScript Game Engine,它能帮助你方便快捷的开发基于HTML5游戏(不管是桌面版还是手机版的浏览器)。该引擎还有一个功能丰富的Weltmeister关卡编辑器,不管是多么复杂的游戏,Weltmeister都可以帮助你实现它。

在作者的个人博客http://www.phoboslab.org/上,也公布了自发布后一个月内的销售记录:


Appcelerator公司收购Impact将Dominic Szablewski招之麾下,将会是一个不错的选择!

当然,Titanium和PhoneGap等开发平台在本质的区别是是否产生原生代码?有趣的是Adobe在收购PhoneGap之后,有意让用户选择使用Adobe Air 和Flash。

看看Appcelerator公司是否会继Aptana、Particle Code、Cocoafish之后,在第4次收购中将Impact拿下,从而加大Titanium的游戏娱乐功能!


期待吧!!!


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3