很长一段时间没写东西了,其实是因为最近在研究Material Designer这个东西,熬夜熬的身体也不是很好了.所以就偷懒没写东西,这回开的这个系列文章是讲如何将Material Designer在程序中实现.作为一个程序员我们不需要关心太多的设计,我们只需要知道设计师给出的要求我们能否实现就行了.但,作为开头,我们还是得来讲讲这个设计重点是什么. Material Designer 宗旨:让不同大小不同用途的设备上拥有同一种设计风格 1.纸张 这种设计模式大量参考了纸墨的模式,将空间变得像纸…
extends:http://www.cnblogs.com/tianzhijiexian/p/4087917.html 本文是对API中的方法做了介绍,如果想要看如何让这些方法兼容4.x或2.x可以看这篇文章:  用开源项目ActivityOptionsICS让ActivityOptions的动画实现兼容 新版的V4包中有了这个类—— ActivityOptionsCompat,我们可以通过这个类来启动activity和添加动画.但不幸的是所有的动画都没有给2.x用的,大部分动画也对4.x不兼…
在Material Designer中,色彩再一次被摆到了重要的位置上.官方文档中竟然给出了500种配色方案进行选择.就是为了给不同的手机.电视.手表上带来一直的用户体验. 更多用于控制色彩的属性,可以参考:colorControlNormal.colorControlActivated.colorControlHighlight, colorButtonNormal, colorSwitchThumbNormal, colorEdgeEffect, statusBarColor and nav…
Theme material主题可以定义为如下形式: @android:style/Theme.Material @android:style/Theme.Material.Light @android:style/Theme.Material.Light.DarkActionBar 我们可以在vlues-v21中的styles.xml文件中继承这些主题,然后定制一些属性.在v21中可以做如下修改 <resources> <!-- inherit from the material th…
ChekBox的用途我们就不必多说了,算是一个很古老的控件了,何其类似的还有RadioButton,这个东西因为我目前还没写出来,所以用了别人的一个lib,这下面会说到.顺便说一句,如果你的app是在5.0环境下编译的,那么你用传统的checkbox时,你会发现checkbox在低版本机子上运行出来的样子和以前不同了,虽然没有动画效果,但样子和5.0以上的checkbox还是很像的. 最小尺寸 48 x 48 开源lib中对于不同的屏幕做了不同大小的对勾图片,应该能满足高清屏的要求.至于不可用状…
Slider,我更喜欢叫他SeekBar,其实是一个东西啦,就是拖动条.5.0的拖动条和4.x上的HOLO风格完全不同,平添了一些精致.此外还加入了数值指示器,让用户在滑动的时候就能知道现在到了什么位置.Ok,理想很美好,兼容很残酷!我虽然改了很多兼容包本身的bug,但是还是有个挺大的bug没有解决——指示器错位.当你在一个可以滑动的view中放着歌slider的时候,它的指示器出现的位置会根据它初次出现的位置来显示,也就是说如果你把它滚动了,那么它的指示器还是会傻傻的根据它原来的位置进行显示,…
进度条我们都很常见了,新的设计规范中提出了各式各样的进度条,本篇就会介绍大部分进度条的实现.实现方式和规范的示例图可能略有差异,还是那句话根据具体需求进行改变吧. PS:本文较长 参考文档:http://design.1sters.com/material_design/components/progress-activity.html 我们先来看设计规范中的一段话:进度条(指示器)的类型有两种:线形进度指示器和圆形进度指示器.你可以使用其中任何一项来指示确定性和不确定性的操作. 线性进度条:…
5.0中的switch和之前完全不同了,漂亮不漂亮咱们另说,总之4.x上是没有这样的效果了.实现方式有两种,一种是用这个兼容包来做类似的效果,一种是用传统的checkbox来代替.我感觉兼容包的效果是不错,但少了点击后立刻开关的感觉,而且在scrollView等可以滑动的中,可能会出现操作不灵敏的问题(因为左右时你不可能确保手指没有上下滑动,所以可能会触发scrollView的滑动事件).用传统的Checkbox虽然没有拖动的效果,但是用户按下去立刻有开关的反馈,十分干净利落.当然,本文还是讲如…
5.0一个新特性就是出现了这么一个圆形的悬浮指示按钮,这个按钮可以用来体现一个全局的重要功能,比如添加账户什么的.这个按钮有两种大小,一种是正常的按钮大小,一种是小型的按钮.官方文档中介绍的是小心的按钮尺寸仅仅用于配合屏幕上的其他元素制造视觉上的连续性(不理解).总之我们经常用的是正常的按钮,小型按钮就看需求了.从代码来看,小尺寸的按钮就是继承的正常尺寸的按钮,写这部分的代码这也是令我最痛苦的,后来慢慢就好了.所以大家测试的时候,如果正常的按钮没有问题,小尺寸的按钮也绝对没有什么问题了. 按钮尺…
   Toolbar其实是一个ActionBar的变体,大大扩展了Actionbar.我们可以像对待一个独立控件一样去使用ToolBar,可以将它放到屏幕的任何位置,不必拘泥于顶部,还可以将它改变高度或者是在ToolBar上使用动画.从最新的SDK看,很多actionbar的方法已经变成了废弃的了,所以我们可以断定未来就是Toolbar将会完全取代ActionBar! 下面我们来讲如何使用这个控件. 1.布局文件 <RelativeLayout xmlns:android="http://…
今天说的又是一个5.0中才有的新控件——CardView(卡片视图).这个东东其实我们早就见过了,无论是微博还是人人客户端,它都有出现.通常我们都是通过自定义一个背景图片,然后通过给layout进行设置背景样式来实现这个卡片视图.虽然现在5.0和第三方库都有了这个view,但是我还是很建议去自定义这个view,为啥?能在编译器中直观的看到效果,而且可定制度好.最重要的是自己做也不难,引入第三方库反而会增大应用的体积.总之,本篇主要讲解的还是如何使用开源库和supportV7中的cardView.…
   除了中规中矩的矩形按钮外,5.0中将按钮扁平化,产生了一个扁平按钮——Flat Button.这个按钮降低了很多存在感,主要用于在对话框,提示栏中.让整个界面减少层级.今天说的就是它的用法. 这个按钮继承自矩形按钮,所以拥有很多矩形按钮的属性,关于矩形按钮请看上一篇文章. 首先还是添加lib的依赖.lib地址:https://github.com/shark0017/MaterialDesignLibrary 一.放入布局文件 自定义命名空间:xmlns:app="http://schem…
矩形按钮是我们很常用的控件,让其拥有5.0动效必须自定义控件.本文讲解的控件是参考: https://github.com/shark0017/MaterialDesignLibrary 一.放入布局文件 我们在添加这view的时候需要写一个命名空间 xmlns:materialdesign="http://schemas.android.com/apk/res-auto <com.gc.materialdesign.views.ButtonRectangle android:layout…
新版的Android5.0添加了涟漪效果,虽然开源的库提供了各种控件便于大家使用涟漪效果.但是仍旧不可能满足所有需求,因此我今天改出来一个类叫做,LayoutRipple,其实感觉跟应该叫RippleLayout.在这个layout被选中的时候会触发涟漪效果,比较适合list中的item.下面说下怎么用这个类. 一.下载开源项目并添加支持 https://github.com/shark0017/MaterialDesignLibrary 在新建的工程中添加这个项目为library. 二.将la…
http://www.bubuko.com/infodetail-460163.html…
报错信息 ios 11以下 cannot clone a disturbed response github.com/github/fetc- 问题发生场景 使用了一个或者多个三方库 三方库或者自己的业务代码重写了fetch ios11以下 核心原因 ios低版本兼容问题,fetch的原始响应clone一次解析后,不能再次clone(浏览器报错信息:cannot clone a disturbed response) 我们使用fetch的响应的时候,如果直接通过方法解析2次,第二次就会报错 bo…
上一篇文章讲到了javascript原生的bind方法: http://www.cnblogs.com/liulangmao/p/3451669.html 这篇文章就在理解了原生bind方法的原理以后,自己写一个原型bind方法,来兼容ie低版本浏览器: bind方法一共做了三件事: 1.改变方法中的上下文 2.为方法传入实参 3.返回一个改变了上下文并且调用的时候传入指定的实参的新方法 因此,我们就照着这个思路,写一个Function的原型方法: if(!Function.prototype.…
2017-04-09 曾经折磨一代人的兼容问题,如今也在同样折磨着我们,明明可以做JS判断来避免对ie低版本的兼容,但是却还是耐心的做着兼容,你可能会问这是为什么, 我们调的不是兼容,是整整一代人的情怀!…
Fragment框架开发东西确实很方便,但是恼人的是从4.0才开始支持.以前的版本必须用兼容模式开发,本人在网上找了大量资料,终于找到些线索正常运行于2.1版本的安卓系统.现在浅说一下兼容版本使用Fragment的基本要点.1.首先libs目录必须有android-support-v4.jar,能用Fragment全靠它了.2.使用的Activity必须继承自FragmentActivity.3.不使用布局文件的<fragment />标签,使用其他layout作为容器,改用程序动态生成(笔者…
Function.prototype.bind= function(obj){ var _self = this, args = arguments; return function() { _self.apply(obj, Array.prototype.slice.call(args, 1)); } }…
Object.prototype.create=(function(){ if(Object.prototype.create){return Object.prototype.create}else{var F=function(){};return function(proto){F.prototype=proto;return new F();}} })()  …
1,元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动: 解决方案:给需要宽度由内容撑开的元素加上浮动 css样式: <style> .box{ width:400px; border: 1px  solid black; overflow:hidden; } .left{ float:left; background:red; } .right{ float:right; background: blue; } h2{ margin:0; heig…
1. html5shiv.min.js解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题. respond.min.js让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询. <!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script…
function i_array_column($input, $columnKey, $indexKey=null){ if(!function_exists('array_column')){ $columnKeyIsNumber = (is_numeric($columnKey))?true:false; $indexKeyIsNull = (is_null($indexKey))?true :false; $indexKeyIsNumber = (is_numeric($indexKey…
兼容处理 ie 低版本,推荐三条路径: 一.css hack,适用于代码初建阶段,也就是说在开发功能之前要思考的问题点,这里总结几个常见的: 1.- 区分 ie6 与 ie7以上 ( -text-indent: 0;  ie6识别) 2.* 区分标准 ie7 与 ie8以上标准模式 ( *text-indent: 0; ie7识别 ) 3.\0 区分标准 ie8+ 与 ie其他低版本( text-indent: 0\0; ie8+识别 ) 4.\9\0 区分 ie9.10 与 ie其他低版本 (…
       这篇文章主要讲的是在低版本兼容的ActionBar中实现自定义的ActionProvider,ShareActionProvider的使用方法,如何实现分离式ActionBar,外加在分离式ActionBar上的ActionMode的效果. 一.自定义ActionProvider 建立一个类,继承android.support.v4.view.ActionProvider,然后复写里面的方法即可.主要就是初始化视图和相应点击事件. 范例一: SettingsActionProvid…
    之前我一直用ActionBarSherlock这个开源项目来做ActionBar,因为它可以让低版本的设备也能用上ActionBar.但是在最新的SDK中Google提供了一个AppCompat的工程作为libary.它里面就提供了向低版本兼容的ActionBar,所以我们就直接用官方的库就行了.这里需要注意的是,如果你是用最新的Eclipse with SDK自动创建的工程,那么就没有问题,如果是自己建立的工程,那么就需要设置style文件和添加一些命名空间,具体步骤请参照:http:…
实例 使用 data-* 属性来嵌入自定义数据: <ul> <li data-animal-type="bird">Owl</li> <li data-animal-type="fish">Salmon</li> <li data-animal-type="spider">Tarantula</li> </ul> 浏览器支持 IE Firefox Ch…
就目前而言,WebSocket是最好的Web通信解决方案了.但是IE从10才开始兼容它,对于目前大量IE8存在的市场,原生的WebSocket显然不太实用,我们需要低版本兼容的解决方案.于是我模拟WebSocket在浏览器上的行为,用AS3写了个兼容的版本. 内容有点多,这篇只把演示给搞定,至于AS的源码就丢到下一篇了.下面是效果图: 演示下载地址: WebSocket兼容到低版本浏览器(演示实例) 页面代码比较简单,用法和正常的WebSocket基本一样,只是引用了WebSocket.js这个…
AppCompat 22.1,Goole暴走,MD全面兼容低版本 分类: Android2015-04-24 09:48 1354人阅读 评论(0) 收藏 举报 android   目录(?)[+]   武侠相关的文学作品中常用“四十岁后不滞于物,草木竹石均可为剑.自此精进,渐入无剑胜有剑之境.”形容一个人的武功技艺高超,已臻化境.而我们IT工程师自身的技艺水平到达一定程度后,也会处于这种“无码胜有码”的境界.但这是什么意思呢?是说我们从此不再写代码,每天躺在床上和白花花的天花板无言对望了吗?…