`
iMAG
  • 浏览: 1709 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

推荐imag.js移动开发平台十个常用的原生UI控件

阅读更多
imag.js是一种NativeScript形式的框架,它兼具 Web 应用的灵活和 Native 应用的高性能,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用Native抽象操作系统原生的 UI 组件,并内置一体化框架,结合 Java、.Net、php和HTML5等主流开发语言/开发环境来写XML语法。敲一次代码,能够运行在多个平台上,平台同时融合第三方原生SDK以及模板服务。
本文推荐10个常用的原生控件,希望能给移动应用开发者提供帮助。
1.文本控件label
label区别于HTML,爱码哥中文本内容必须包含在label标签之内。虽然简单,却是最常用的。同时label标签内可以嵌入简单的HTML,实现图文混排的效果。
使用示例:
<label>
    <![CDATA[[url=http://baike.baidu.com/view/1168245.htm]移动互联网[/url],
        就是将移动通信和互联网二者结合起来,成为一体。
        <img src="emoticon_ye.png"/><br/>
        在最近几年里,<font color="red">移动通信和互联网</font>
        成为当今世界发展最快、市场潜力最大、前景最诱人的两大业务,它们的增长速度都是
        <font color="#ABABAB"><i>任何预测家未曾预料到的</i></font>,
        所以<font color="green">[u]移动互联网[/u]</font>
        可以预见将会创造怎样的经济神话。
        <img src="emoticon_geili.png"/>]]>
</label>

效果图:

2.图标控件icon
icon显示资源图片或手机本地图片(注意:Icon只用来显示资源图片,显示网络图片用Image控件。)
使用示例:
<icon src="icon_tv.png" style="width:100;height:50"/>

3.标题栏控件title 
title控件有且只有left、center、right这三个控件。
使用示例:
<title style="background:purple;tint-color:green">
    <left>
        <button role="back">返回</button>
    </left>
    <center>
        <label>设置按钮颜色</label>
    </center>
    <right>
        <button>按钮</button>
    </right>
</title>

效果图:

4.页面内容控件content 
App的页面所有的内容使用的控件几乎都放在content控件里
使用示例:
<content draggable="true">
    <button style="width:120">按钮</button>
</content>

5.列表布局控件list
List控件的子标签是item,item的子控件是col
list有plain, group, transparent, toolbar四种类型。
其中plain是默认的扁平风格的列表,group是分组列表。
transparent是透明风格的列表,plain和group类型的列表都有默认的边线和背景,而transparent则是把这些边线和背景去掉了的,这样可以在transparent类型的列表上设置新的背景。
toolbar类型的列表主要用于定制工具栏,toolbar类型的列表也是透明的,toolbar和transparent的区别是transparent列表内部有默认的边距,而toolbar列表则把item里默认的margin和padding也去掉了。
使用示例:
<list type="group">
    <item accessory="indicator" style="col-width:*,100;">
        <col>
            <row>
                <label>标题</label>
            </row>
            <row>
                <label style="color:gray">副标题</label>
            </row>
        </col>
        <col>
            <row>
                <label style="color:blue;align:right;font-size:14">2012-05-01</label>
           </row>
        </col>
    </item>
</list>

*复用列表
复用列表(resue list)是不同于普通列表的另外一种列表,使用复用列表是为了优化性能,在大数据的情况下(上千个item)避免因内存占用过多而导致系统崩溃。这是因为在移动应用中view(视图)是很耗费系统资源的一个对象,过多的view(几千个,view所占内存大小取决于view的面积)可能会引起内存不足而崩溃,同时一次性加载这么多view也会花费很长的时间。
对此相应的解决方案是使用reuse list,reuse list的原理是只创建一屏幕显示的view对象,当view被滚动超出屏幕之后就会被用来复用,因此始终只会占用一屏幕view的内存, 有效地解决了内存不足而引起崩溃的问题, 同时因为实际创建的view个数较少,具有很快的加载速度。
使用示例:
<?xml version="1.0" encoding="utf-8"?>
<imag>
    <script>
    <![CDATA[
        function initList() {
            var listJson = {items:[]};
            for (var i = 0; i < 1000; i++) {
                var itemJson = {
                    template:0,
                    onclick:'alert("item' + i + '")',
                    widgets:{
                        title:{text:'标题' + i},
                        subtitle:{text: '副标题' + i}
                    }
                }
                listJson.items.push(itemJson);
            }
            $('resuelist').update(listJson);
        }
         
        $page.onload = function() {
            initList();
        }
    ]]>   
    </script>
    <page>
        <title>
            <center>
                <label>reuse list</label>
            </center>
        </title>
        <content>
            <list id="resuelist" reuse="true">
                <item accessory="indicator">
                    <label reusekey="title"></label>
                    <label style="color:gray" reusekey="subtitle"></label>
                </item>
            </list>
        </content>
    </page>
</imag>

6.标签页控件tabs 
使用示例:
<tabs>
    <tab label="微信" icon="tab_home_normal.png,tab_home_selected.png" style="label-color:#999999,#46c01b">
        <title>
            <center>
                <label>微信</label>
            </center>
        </title>
        <content draggable="true">
            <list type="group">
                <item>
                    <label>微信</label>
                </item>
            </list>
        </content>
    </tab>
    <tab label="通信录" icon="tab_category_normal.png,tab_category_selected.png" style="label-color:#999999,#46c01b">
        <title>
            <center>
                <label>通信录</label>
            </center>
        </title>
        <content draggable="true">
            <list type="group">
                <item>
                    <label>通信录</label>
                </item>
            </list>
        </content>
    </tab>
    <tab label="发现" icon="tab_service_normal.png,tab_service_selected.png" style="label-color:#999999,#46c01b">
        <title>
            <center>
                <label>发现</label>
            </center>
        </title>
        <content draggable="true">
            <list type="group">
                <item>
                    <label>发现</label>
                </item>
            </list>
        </content>
    </tab>
    <tab label="我" icon="tab_mine_normal.png,tab_mine_selected.png" style="label-color:#999999,#46c01b">
        <title>
            <center>
                <label>我</label>
            </center>
        </title>
        <content draggable="true">
            <list type="group">
                <item>
                    <label>我</label>
                </item>
            </list>
        </content>
    </tab>
</tabs>

效果图:

7.网格布局控件grid
使用示例:
<grid>
    <item icon="tab_weixin_normal.png"><label>微信</label></item>
    <item icon="tab_address_normal.png"><label>通信录</label></item>
    <item icon="tab_find_frd_normal.png"><label>找朋友</label></item>
    <item icon="tab_settings_normal.png"><label>设置</label></item>
</grid>

效果图:

8.弹出菜单控件PopupMenu
popupmenu类似于content控件,可以在里面添加list,grid,screens等其他控件,不过一开始是隐藏的,要通过open()方法显示,弹出菜单可以显示在多个不同位置。
使用示例:
<?xml version="1.0" encoding="utf-8"?>
<imag>
    <script>
        <![CDATA[
            function openPopupMenu() {
                $('test_popupmenu').open();
            }
        ]]>
    </script>
    <page>
        <title>
            <center>
                <label>弹出菜单居中</label>
            </center>
        </title>
        <popupmenu id="test_popupmenu" position="center" onclose="hint('onclose');">
            <list>
                <item onclick="$('test_popupmenu').close();hint('复制')">
                    <label>复制</label>
                </item>
                <item onclick="$('test_popupmenu').close();hint('收藏')">
                    <label>收藏</label>
                </item>
                <item onclick="$('test_popupmenu').close();hint('翻译')">
                    <label>翻译</label>
                </item>
                <item onclick="$('test_popupmenu').close();hint('举报')">
                    <label>举报</label>
                </item>
            </list> 
        </popupmenu>
        <content>
            <button onclick="openPopupMenu();">弹出菜单</button>
        </content>
    </page>
</imag>

效果图:

9.按钮控件button
使用示例:
<button style="background:#3E86D7,#2873C2;padding:10;corner-radius:8;width:120;color:white;font-size:14" onclick="hint('自绘按钮')">自绘按钮</button>

效果图:

10.侧滑菜单栏SlidingMenu          
SlidingMenu 用来显示侧滑菜单,SlidingMenu包括两个item,第一个item是左边的菜单项,第二个item是右边的内容。
左边的菜单项一开始是隐藏的,可以调用open()方法打开。
使用示例:
<slidingmenu id="slidingmenu">
    <item>
        <content style="background:#666666">
            <list>
                <item style="background:#333333">
                    <label style="color:white">头条</label>
                </item>
                <item style="background:#333333">
                    <label style="color:white">体育</label>
                </item>
                <item style="background:#333333">
                    <label style="color:white">娱乐</label>
                </item>
                <item style="background:#333333">
                    <label style="color:white">财经</label>
                </item>
                <item style="background:#333333">
                    <label style="color:white">科技</label>
                </item>
            </list>
        </content>
    </item>
    <item>
        <title>
            <left>
                <button onclick="$('slidingmenu').open()">打开</button>
            </left>
            <center>
                <label>SlidingMenu</label>
            </center>
        </title>
        <content style="background:white">
            <label>内容</label>
        </content>
    </item>
</slidingmenu>
0
1
分享到:
评论

相关推荐

    imag.js|教你如何智做原生APP

    imag.js可能是JavaScript的一个库或者框架,专为创建移动应用设计,它允许开发者用JavaScript编写代码,同时能够生成接近原生性能的应用。 【描述】虽然描述部分为空,但我们可以通过博文链接...

    cut_imag.7z

    《win截屏工具cut_imag.7z详解及应用》 截屏工具在现代计算机使用中扮演着不可或缺的角色,尤其在信息分享、问题反馈以及教学演示等场景中,它提供了便捷的方式来捕捉屏幕上的图像。"cut_imag.7z"便是一款针对...

    4_Add2Imag.zip_thisimag

    【标题】4_Add2Imag.zip 这个压缩包文件涉及的是一个OpenCV项目,名为"thisimag",它很可能是关于在图像处理中添加两个图像的实现。OpenCV(开源计算机视觉库)是一个强大的跨平台库,广泛用于图像处理、计算机视觉...

    fastICA_imag.zip_fastica图像_图像分离_混合图像分离

    "fastICA_imag.zip"这个压缩包包含了实现这一功能的源码文件"fastICA_imag.m",这是一个MATLAB代码,用于执行快速ICA算法(FastICA)在图像分离上的应用。 FastICA算法是ICA的一种高效实现,由Aapo Hyvärinen等人...

    VC_start_up_imag.rar_MFC 启动界面_Start Up

    在Windows应用程序开发中,MFC(Microsoft Foundation Classes)是一个强大的库,它为C++程序员提供了构建Windows应用程序的框架。这个“VC_start_up_imag.rar_MFC 启动界面_Start Up”资源是一个实例,展示了如何在...

    imag.xy2.dev

    标题"imag.xy2.dev"暗示了这是一个与图像处理或者图像展示相关的开发平台或者工具,可能是为了优化和管理网页上的图像资源。这可能包括对图片进行压缩、调整大小、转换格式等功能,以提高网页加载速度和用户体验。 ...

    yolov8系列--GUI for marking bounded boxes of objects in imag.zip

    在本压缩包“yolov8系列--GUI for marking bounded boxes of objects in imag.zip”中,包含的是一个用于图像目标检测的图形用户界面(GUI)工具。这个工具主要用于在图像上标注物体的边界框,是训练对象检测模型如...

    Android 预约订餐order.zip

    imag.js框架,虽然名字看起来像是JavaScript库,但这里可能是开发者自创的一个组件或者工具,因为没有公开的"imag.js"框架信息。它可能是一个专门为Android定制的JavaScript库,用于增强图形处理、动画效果或者交互...

    SMPTEMot.Imag.J-2014--1-60.pdf

    文章主要聚焦在两个视频色彩标准上:BT.709和BT.2020,探讨了与之相关的新技术和应用前景。 首先,BT.709标准是长期以来用于定义高清晰度视频压缩中显示设备的主色度以及Y’Cb’Cr’色彩空间转换的标准。然而,随着...

    PyPI 官网下载 | imag3-1.1.0.tar.gz

    《PyPI官网下载imag3-1.1.0.tar.gz:深入解析Python图像处理库imag3》 在Python编程世界中,PyPI(Python Package Index)是开发者们获取和分享软件包的重要平台。今天我们将聚焦于一个名为"imag3"的Python库,其...

    fastICA_imag.rar_fastica 图像_fastica图像_图像复原算法_图像盲分离、_混合图像分离

    - **fastICA_imag.m**:这个文件很可能是MATLAB代码,实现了fastICA算法用于图像盲分离的过程。代码可能包括数据预处理、负熵函数计算、权重更新和结果可视化等关键步骤。 5. **实际应用示例** - **混合图像分离*...

    A Small Target Detection Method in Infrared Imag.pdf

    1. 红外目标检测:红外目标检测是图像处理中的一个重要问题,广泛应用于军事、航空和海洋领域。红外检测系统需要能够从远距离探测到目标并尽可能获取相关信息,从而提供尽可能快的客观信息,增加防御或控制系统的...

    blr-imag.fig.zip_去模糊_去模糊MATLAB_模糊图像恢复

    图像被模糊以后的模糊图像和去模糊后的恢复图像的对比

    简单复数计算器

    result = new Complex((a.real * b.real + a.imag * b.imag) / (b.real * b.real + b.imag * b.imag), (b.real * a.imag - a.real * b.imag) / (b.real * b.real + b.imag * b.imag)); return result; } // 除法...

    fastICA_imag.rar_fastica_fastica image_fastica 图像_fastica图像_hybr

    利于fastICA算法实现混合图像分离的源代码,给大家一个参考

    API _java_android_

    本主题主要关注在Android平台上如何利用Java语言来调用API,特别是加载新闻数据和使用JavaScript库imag.js。 首先,理解API调用的基本概念至关重要。API通常是一组预定义的函数、类或方法,允许开发者通过发送请求...

    AA.rar_ONDELETTES

    antonia@imag.fr http://www-lmc.imag.fr/SMS G′en′eralit′es sur les d′ecompositions en ondelettes &#8226 Les ondelettes . Analyses multir′esolution . Algorithmes de calcul &#8226 Approximation et ...

    imag-popupmenu.zip

    在Android开发中,PopupMenu是一个非常实用的组件,它允许我们创建从特定视图弹出的下拉菜单。"imag-popupmenu.zip"这个压缩包显然包含了一个关于如何在Android应用中绘制多个PopupMenus的示例。下面我们将深入探讨...

    imag推送程序

    "imag推送程序"是针对iOS平台的一个特定应用组件,它主要负责处理应用程序内部的消息推送功能。在iOS系统中,消息推送通常通过Apple Push Notification Service (APNS)来实现,但开发者可能需要定制化推送服务或者...

Global site tag (gtag.js) - Google Analytics