Fries:使用HTML、JavaScript和CSS搭建Android本地接口

受iPhone应用原型设计框架Ratchet的启发,Jaune Sarmiento创建了Fries——一个用来创建Android应用UI的小型框架,在创建过程中使用HTML、JavaScript和CSS,而无需本地代码。虽然已有许多类似的框架,但Fries对Android 4.0本地接口模仿得尤为出色。

目前,Fries定义了若干UI组件,包括:操作栏(包括向上按钮、操作按钮、操作溢出菜单和副标题)、标签、按钮、下拉菜单、列表(2行和多行)和表单(包括可伸缩表单)。下图展现了顶部的操作栏,它带有一个操作项和溢出菜单项:

对应的HTML代码如下:

<div class="page">
  <header class="action-bar fixed-top">
    <a class="app-icon action" href="#">
      <i class="icon-fries"></i>
    </a>
    <h1 class="title">Action Buttons</h1>
    <ul class="actions pull-right">
      <li><a title="Search" class="action" href="
#"><i class="icon-search"></i></a>
      <li><a title="Copy" class="action" href="
#"><i class="icon-copy"></i></a>
      <li><a title="Cut" class="action" href="
#"><i class="icon-scissors"></i></a>
      <li><a title="Settings" class="action" href="
#"><i class="icon-settings"></i></a>
    </li></ul>
  </header>
</div>

就像上图一样,基于Fries的应用是一系列HTML“页面”,在请求时使用stack.js载入它们——stack.js改编自Ratchet的push.js,它在需要的时候执行AJAX调用,从服务器端取回新的页面。Sarmiento表示,stack.js使用“HTML5历史API,因此不会破坏Android设备的后退按钮功能。”

Fries使用PhoneGap实现页面间的过渡,一段YouTube上的视频对此进行了展示。

Sarmiento给出了一份简要的路线图,其中提到了可滑动标签、模态、进度条等内容。

目前,在搭建HTML5接口以模拟本地接口时还存在一些问题。HTML5应用的主要价值在于一次编写就可以部署在多种移动操作系统上。但Fries与Android风格类似,而与iOS并不是非常匹配。如果在Ratchet和Fries之上搭建一个抽象的UI框架或许能够解决这个问题,这样的框架根据应用在哪个操作系统——iOS或Android——上运行来切换框架。

另一个重大问题与应用的离线运行相关。目前,Fries应用需要保持Internet连接,或是在设备上运行一个Web服务器。这个问题可以通过运用HTML5离线特性来解决,届时应用将被缓存或本地存储。

查看英文原文:Fries: Building a Native Android Interface with HTML, JavaScript and CSS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTMLCSS美食主题代码示例,其中包括一个美食图片轮播和一个美食菜单列表: HTML代码: ```html <!DOCTYPE html> <html> <head> <title>Food Theme</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <header> <h1>Delicious Food</h1> <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">Menu</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </header> <section id="slider"> <div class="slide"> <img src="img/food1.jpg" alt="Food 1"> </div> <div class="slide"> <img src="img/food2.jpg" alt="Food 2"> </div> <div class="slide"> <img src="img/food3.jpg" alt="Food 3"> </div> </section> <section id="menu"> <h2>Our Menu</h2> <ul> <li> <h3>Burger</h3> <p>A delicious burger with cheese, lettuce, tomato, and onion. Served with fries.</p> <span>$8.99</span> </li> <li> <h3>Pizza</h3> <p>A classic pizza with tomato sauce, mozzarella cheese, and your choice of toppings.</p> <span>$10.99</span> </li> <li> <h3>Tacos</h3> <p>Three soft-shell tacos filled with your choice of chicken, beef, or pork. Served with salsa and sour cream.</p> <span>$9.99</span> </li> <li> <h3>Salad</h3> <p>A fresh salad with mixed greens, cherry tomatoes, cucumber, and your choice of dressing.</p> <span>$6.99</span> </li> </ul> </section> <footer> <p>© 2021 Delicious Food</p> </footer> </body> </html> ``` CSS代码: ```css body { font-family: Arial, sans-serif; } header { background-color: #f2f2f2; padding: 20px; display: flex; align-items: center; justify-content: space-between; } h1 { margin: 0; } nav ul { list-style: none; margin: 0; padding: 0; display: flex; } nav li { margin-right: 20px; } nav a { text-decoration: none; color: #333; } #slider { width: 100%; height: 400px; display: flex; overflow: hidden; } .slide { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; } .slide img { width: 100%; height: 100%; object-fit: cover; } #menu { background-color: #f2f2f2; padding: 50px 20px; } #menu h2 { text-align: center; margin-bottom: 50px; } #menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; } #menu li { width: 300px; margin: 20px; background-color: #fff; padding: 20px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } #menu h3 { margin-top: 0; } #menu p { margin-bottom: 20px; } #menu span { font-weight: bold; float: right; color: #f00; } ``` 在上面的代码中,我们创建了一个页面标题和导航栏。页面主体分为两个部分:一个美食图片轮播和一个美食菜单列表。轮播使用CSS的flexbox布局和overflow:hidden属性来实现。菜单列表使用了flexbox布局和box-shadow属性来增加阴影效果。 请注意,上面的示例只是一个简单的美食主题示例,您可以根据自己的需求和喜好进行修改和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值