别的UI给特别的你们!
排名不分先后,快速上手的移动端UI汇总(部分可能不那么简单),希望对你有帮助,资源获取方式在文末
ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )。 可以帮助您使用 Web 技术,比如 HTML、CSS 和 Javascript 构建接近原生体验的移动应用程序。
ionic 主要关注外观和体验,以及和你的应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。
VUX 是基于 WeUI 和 Vue.js 的 移动端 UI 组件库,提供丰富的组件满足移动端(微信)页面常用业务需求。
Touch UI是一套完全免费的高质量移动端UI框架。基于vue.js框架,我们精心打造了上百种的移动端UI组件,几乎囊括了开发移动应用的所有细节,真正实现拿来即用,像搭积木一样开发移动应用。
通过借鉴微信小程序的思想,Touch UI设计了与微信小程序相似的开发方式和API,希望通过这种方式降低学习成本,让任何水平的开发者都能做出精美应用。另外,配合我们的小程序开发框架:Touch WX,可以将Touch UI做的H5应用直接转成微信小程序。
Touch UI还提供了开发工具方便开发(微软的VSCode编辑器+插件),开发工具集成了编译环境,可以通过可视化菜单的方式对代码进行编译和项目输出。通过在线更新插件的方式可以第一时间获取Touch UI的更新。
FrozenUI 是一套基于移动端的UI库轻量、精美、遵从手机 QQ 设计规范
适用于使用手Q规范设计的Web页面,而针对非手Q规范的页面,可通过修改变量定制界面主题。
可以按需选择需要的组件,也可以采用cdn和combo的方式按需加载。
使用iconfont展示图标,包含了按钮,列表,表单,提示,弹窗等常用组件,新增文本,布局,1px, rem,文字截断,占位,两端留白,两端对齐等解决方案,同时解决了移动端屏幕适配问题。
CSS使用模块化的样式命名和组织规范,使用sass编写css代码。
多端发布 – 开发一套代码,发布六个平台
SUI Mobile 是一套基于 Framework7 开发的UI库。它非常轻量、精美,只需要引入我们的CDN文件就可以使用,并且能兼容到 iOS 6.0+ 和 Android 4.0+,非常适合开发跨平台Web App。
轻量的UI库
SUI Mobile 非常轻量,核心库压缩Gzip后的JS、CSS网络传输体积总共只有52K,却提供了20+个常用的组件。
对于只有HTML&CSS的组件,你只需要复制HTML代码既可以使用。他的大部分JS组件都是独立的 Zepto 插件,并且提供了 Zepto/jQuery 风格的API,你将会非常熟悉这种方式。
一只注重审美,且性能高效的移动端&微信UI。
YDUI Touch 专为移动端打造,在技术实现、交互设计上兼容主流移动设备,保证代码轻、性能高。
使用 Flex 技术,灵活自如地对齐、收缩、扩展元素,轻松搞定移动页面布局。
WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。
快速开发
结合BUI Fast插件,可以提高5倍以上的开发速度!
快速上手
一次学习,多平台适用,跟你刚学前端一样开发,只需要5分钟就能快速上手
轻松定制
控件接口开放,UI效果及交互都可以轻松定制
多终端适配
一次开发,多平台适配,完美还原设计稿,在微信,手机浏览器,安卓,IOS保持跟一致的效果.
BUI 是一个开放式的UI交互框架, 用于快速定制开发WebApp,微信,快应用,还可以开发混合移动应用 ( 例如: Bingotouch, Link, Cordova, DCloud, ApiCloud, Appcan ) , 钉钉的轻应用, 前海圆舟等第三方平台.
Amaze UI Touch 专为移动打造,在技术实现、交互设计上只考虑主流移动设备,保证代码轻、性能高。
只提供 UI 组件(View),对配套技术不做限定,方便用户与现有技术栈快速整合,降低使用成本。
AUI Mobile jQuery Mobile bootstrap 等还有很多
今天小编就分享到这里
如果你是初级程序员可以研究别人的代码提高技术,如果你喜欢搞网盟或者外包,可以让你快速建站,还等什么赶快关注吧,我们会持续输出相关资源
动端web开发框架、类库和UI组件简介,有需要的收藏一波。
react-native
一个基于React的创建原生APP的框架
html5-boilerplate
一个用来构建快速、强大、可适配的webapp的前端模板
ionic
领先的HTML5移动开发框架和SDK,利用你所熟知的web技术构建难以置信的移动应用,是AngularJS最好的朋友。
weui
由微信官方设计团队为微信Web开发量身打造的框架,包含移动web应用开发中有用的组件和模块
hammer.js
实现多点触控的javascript库
weex
阿里推出的跨平台的移动端开发框架,具有轻量级、可扩展和高性能的特点
fastclick
一个消除移动端浏览器上的点击事件的300ms的延迟
zepto
Zepto.jsisaminimalistJavaScriptlibraryformodernbrowsers,withajQuery-compatibleAPI
vux
基于Vue和Weui的移动端框架
wepy
腾讯团队推出的小程序组件化开发框架
NativeScript
NativeScript是一个利用JavaScript等WEB技术创建原生APP的框架
Framework7
功能强大的创建iOS&AndroidAPP的HTML框架
mui
最接近原生APP体验的高性能框架
ratchet
用简单的HTML,CSS,和JavaScript组件创建移动应用
react-native-elements
ReactNativeUI组件库
mint-ui
基于vue.js的移动端UI框架
amazeui
移动端优先的开源HTML5跨屏前端框架,俗称妹子UI
jquery-mobile
jQuery移动开发框架
Mars
腾讯移动Web前端知识库
interact.js
JavaScriptdraganddrop,resizingandmulti-touchgestureswithinertiaandsnappingformodernbrowsers(andalsoIE8+)
vant
有赞开发的基于Vue.js2.0的UI组件库
OnsenUI
用来构建混合移动端APP的HTML5UI框架
muse-ui
基于Vue2.0和MaterialDesigin的UI组件库
SUI-Mobile
SUIMobile(MSUI)是由阿里巴巴国际UED前端出品的一个手机端的UI库,轻量精美。更多信息请参考官网
ant-design-mobile
一个可配置的移动端UI框架
TouchSwipe-Jquery-Plugin
TouchSwipeisajqueryplugintobeusedwithjQueryontouchinputdevicessuchasiPad,iPhoneetc.
jquery-weui
创建微信混合app的UI库
jquery-ui-touch-punch
AduckpunchforaddingtoucheventstojQueryUI
device.js
Device.jsmakesiteasytowriteconditionalCSS_and/or_JavaScriptbasedondeviceoperatingsystem(iOS,Android,Blackberry,Windows,FirefoxOS,MeeGo),orientation(Portraitvs.Landscape),andtype(Tabletvs.Mobile).
react-native-ui-kitten
可定制和可重用的react-native组件包
iview-weapp
一套高质量的微信小程序UI组件库
vonic
基于Vue.js和ionic组件的SPAUI框架
brick
UIWebComponentsforModernWebApps
app
App.js是一个用来创建移动webapp的轻量级JavaScriptUI框架,可以表现得像原生APP而又不牺牲性能和优雅
Lungo.js
一个给开发者提供的设计、构建、分享跨设备应用的框架
AlloyFinger
腾讯Web前端团队推出的轻量级的多点触控手势库
FooTable
jQueryplugintomakeHTMLtablesresponsive
vue-ydui
一个基于Vue2.x的移动端组件库
wechat-h5-boilerplate
为腾讯微信优化的H5动效模板,帮助你快速构建全屏滚动型H5页面
slip
通过滑动和拖动手势操作列表的UI库
mobi.css
一个关注于移动端的轻量级的、灵活的css框架,
vue-touch
Vue.js的Hammer.js包装器
QuoJS
针对移动设备的微型JavaScript库
pressure
:point_down::boom:JavaScriptlibraryforhandlingbothForceTouchand3DTouchontheweb
junior
一个创建类似原生APP的html5应用的前端框架
vum
为手机webapp打造的基于Vue.js构建的UI框架
mobiscroll
ThecustomizablemobileUIlibraryfortouchdeviceslikesmartphonesandtablets
zingtouch
一个JavaScript触摸手势检测库
montage
montagejs是一个优雅的、开源的HTML5框架。它提供了模块化组件,双向数据绑定,以及更多功能
pushy
Pushyisaresponsiveoff-canvasnavigationmenuusingCSStransforms&transitions
GMU
基于zepto的ui组件库,适用于移动端
flex.css
flex.cssis是一个声明式的布局框架,能够兼容多个MVVM框架和浏览器
mobilebone
单页切换骨架。适用于移动webAPP,Hybrid混合APP,Phonegap开发,无兼容要求单页PC应用等
jquery.pep.js
Pep,alightweightpluginforkineticdragonmobile/desktop
Cloudajs
CloudaFramework-一个针对移动WebApp的实时JavaScriptRIA框架
jo
Jo(0.5.0)是一个轻量级的(~16K)创建HTML5应用的外壳。可以和PhoneGap,Chrome,Safari,Opera,FireFox,iOS,Android,BlackBerry10,Tizen,&WindowsPhone8+一起工作
touchui
高质量移动端UI框架
iosselect
一个简洁好看的模仿ios的webapp下拉菜单
mand-mobile
面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品
tabris-js
tabris.js-用JavaScript开发原生应用
aui
移动端UI快速布局解决方案(APICloudUI框架)
vue-carbon
基于vue开发的materialdesignui库
cordova-plugin-ibeacon
AniBeaconpluginforPhonegap/Cordova3.xandupwards.SupportsbothiOSandAndroid(contributionsarewelcome)
touch.code.baidu.com
TouchOfficalSite
bindingx
阿里团队推出的weex和ReactNative上富交互问题的一种解决方案
jQuery-Touch-Events
AcollectionofmobileeventpluginsforjQuery.
TinyNav.js
Responsivenavigationpluginthatweighsjust443bytes
Jingle
JingleUI是一个基于html5、css3开发轻量级的移动webapp框架,提供一些基本交互方式,帮助您更方便的开发移动应用。
light7
一个轻量级的易用的移动端UI框架
framework7-vue
基于Framework7和Vue构建iOS和Android应用
ydui
一只注重审美,且性能高效的移动端&微信UI
slip.js
移动端跟随手指滑动组件,零依赖。
wepayui
微信支付场景化组件,wepayui源码
BlendUI
BlendUI是Clouda+中的重要组成部分,他能让webapp的用户界面体验和交互能和Native媲美
toucher
面向移动端的手势类库
touchjs
一个移动端手势检测库
thumbs.js
Addtouchsupporttoyourbrowserwiththumbs.js-asmall,transparent,andsyntax-lesslibrary.
JMUI
移动Web开发UI组件库
JM
面向Mobile的极致JavaScript库
react-ui
为React打造的一套ionic风格的可复用UI组件库
Zoomage.js
Zoomage.js-一个通过手势缩放图片的库
touchSlider
TouchSliderjQueryPlugin
者博客
http://www.jianshu.com/u/0fa6f5d09040
文章目录
前言
场景
实现方式
drawable属性
Spannable使用
HTML显示
总结
0
前言
在使用TextView的时候,我们经常需要在TextView中进行图文混排,比如在QQ中聊天的消息中的表情,底部tab图标等。
1
场景
2
实现方式
Android官方对TextView的图文混排提供了支持,我们可以从以下三种方式实现TextView的图文混排:
1.在TextView中使用Compound Drawable属性;
2.在TextView中使用Spannable多样式显示;
3.在TextView中显示HTML文本。
3
drawable属性
在TextView中使用Compound Drawable属性可以在文字的上下左右放置drawable,效果如下:
一共有两种方式可以实现:XML布局设置和Java代码设置。
1. xml布局
2. java代码
注意:必须setBounds测量图片边界,否则不显示。
3.缺陷
当TextView设置成固定大小时,由于文字距离边界的距离过大,会导致文字与图片之间设置的间距无效,如下图。
解决方案:
①设置TextView的内填充
通过设置paddingLeft、paddingRight、paddingTop、paddingBottom来缩写这个间距
②自定义TextView重新布局
a.先自定义属性iconPadding来设置间距,并提供方法给外部调用。
b.重写setCompoundDrawablesWithIntrinsicBounds方法来获取我们设置的drawable宽高。
c.最后重写onLayout方法。
可以先参考:Android技巧之drawablePadding的那些事(https://yuxingxin.com/2015/11/05/DrawablePadding/),该篇文章只解决了左右失效的问题。后期会整理个解决图文混排的工具库,里面会有具体方案。
4
Spannable使用
1.简介
setText(CharSequence text)中接收的是CharSequence。而SpannableString和SpannableStringBuilder是其实现类,是可以直接赋值的。并且两者的setSpan方法可以设置一些格式对象(例如字体大小、下划线、替换为图片等),这就可以实现富文本了。
Spannable实现子类:SpannableString,SpannableStringBuilder(可变,类似于StringBuilder)。
Spannable中定义了抽象方法:setSpan(Object what, int start, int end, int flags)和removeSpan(Object what)。这两个方法实现了对字符串的灵活编辑。
其中setSpan方法包含如下参数:
flags常用的有四种
通常在insert方式才生效,平时不生效,具体看:Explain the meaning of Span flags like SPAN_EXCLUSIVE_EXCLUSIVE。(https://stackoverflow.com/questions/9879233/explain-the-meaning-of-span-flags-like-span-exclusive-exclusive)
2.常用span类
3.使用方式
其中ImageSpan默认对其方式有两种:ALIGN_BOTTOM及ALIGN_BASELINE。很可惜我们平常用的居中对其的方式没有,不过可以通过自定义实现,后续会在开源出来。
4.效果
5
HTML显示
一般显示HTML内容有两种方式:
使用 Android 提供的 WebView 控件。
通过将 HTML 内容转化为 Spanned 格式在 TextView 中进行显示。
现在大多数都用WebView的方式。但是并不是所有的场景下都适合使用 WebView 来显示 HTML 内容,例如,如果应用要显示的内容只是一部分 HTML 片段,就可以利用 TextView 来进行显示,并且效率较高。
由于这种方式不太常用,就不深入介绍,里面可以实现的效果还是很好的。
1.简介
Android 中的 TextView 组件常用于显示文本内容,其实它也可以显示 HTML 的内容。
简单来讲,这就需要先把 HTML 的内容以字符串的形式获取后,经过 android.text.Html.fromHtml转化成 Spanned 的格式,然后将其传递到 TextView 的 setText方法中,这样就可以在 TextView 中显示 HTML 页面的内容了。
需要注意的是,并不是所有的 HTML 标签在 TextView 中都是支持的,且官方文档并没有明确的说明支持 HTML 标签列表,通过查看 Android 源代码,可以得到简单的支持列表。
下面的示例来介绍如何在 TextView 中显示一段 HTML 内容,要显示的这段 HTML 内容即包含超链接内容,也包含有图片。
2.使用
fromHtml方法
source,就是包含 HTML 内容的字符串。Html.ImageGetter 和 Html.TagHandler 是两个接口,提供给开发者继承使用。
imageGetter, 如果要显示图片是需要被继承的,重写 getDrawable(String source)方法,用于获取 HTML 里面的图片来显示在 TextView 中。
tagHandler,其作用是把 HTML 带标记的文本内容字符串转化成可以显示效果的的 Spanned 字符串 。由于并非所有的 HTML 标签都可以转化,所以在使用时,用户需要自己添加一些必要的标签和处理方法时才会继承使用的。
继承ImageGetter
继承于 ImageGetter,重写 getDrawable (String source) 方法。通过异步操作,读取本地/网络资源,获得drawable对象。
继承TagHandler
继承于 TagHandler,重写了 handleTag方法。为了支持更多的标签,例如为了支持<ul><ol><dd>和<li>标签,这四个标签是在 formHtml方法中本身是不支持。
如果开发者认为安卓 TagHandler 提供的默认标签解析已经够用,直接在 fromHtml方法中第三个参数的地方填写 既可。
最后,通过 formHtml方法将 HTML 内容转化为可供显示的 SpannableString,将 SpannableString 通过 setText 方法放入 TextView 中,就可以显示图文并茂的内容了。
用户交互
formHtml方法已经将 HTML 内容中的超链接和图片转义成为 UrlSpan 和 ImageSpan,进而在 TextView 中完成显示。但是此时是没有任何用户交互的,用户只能看到 HTML 的内容,下面介绍如何添加用户交互功能。
要完成用户交互,这里我们需要在 TextView 中还需要调用textView.setMovementMethod方法。
Android 提供了 LinkMovementMethod 类以实现了对于文本内容中超链接的遍历,并且支持对于超链接的点击事件。
所以只要在添加下面一行代码,就可以使点击 UrlSpan 能够触发打开链接的功能。
如果想要更多的用户交互效果,可以自定义LinkMovementMethod 类,重写onTouchEvent方法来实现。
3.效果
关于HTML显示这部分,没做具体实现。具体可以看:灵活高效的在 Android Native App 开发中显示 HTML 内容(https://www.ibm.com/developerworks/cn/web/1407_zhangqian_androidhtml/index.html),里面有具体源码可以下载,HTML部分内容也是参考该篇文章完成的。
开源库:html-textview
https://github.com/PrivacyApps/html-textview
6
总结
以上就是关于图文混排的一些解决方案,相信通过这些了解,对于工作中的实际场景的使用大家会有适当的解决方案。由于实际应用较少,所以认识较为浅显,可能有些地方描述不当,后期会考虑封装个解决图文混排的工具类,加深下理解。
*请认真填写需求信息,我们会在24小时内与您取得联系。