android如何在xml中引用内部类的View | 游戏极客

作者:JerryXia | 发表于 , 阅读 (21)
上周,有个同事在xml中引用内部类的View时候出错,问我在xml中能不能用内部类的View,我以前项目曾经这样做过,因此当时很肯定地告诉他可以。看了下他的代码,xml中的class属性引用的内部类写法错了,把“$”写成“.”,我让他改下就可以。他试完之后告诉我还是不行,我瞬间懵逼了。当时因时间关系,没时间去查错,让他先改为外部类处理。今天早上有空查看下系统源码,终于把这个问题搞清楚了。进入今天的正题:
xml布局引用内部类View的正确写法系统是如何根据class来创建Viewxml布局引用内部类View的正确写法解决问题从源码入手。首先从Activity的setContentView开始
1234public void setContentView(@LayoutRes int layoutResID) {        getWindow().setContentView(layoutResID);        initWindowDecorActionBar();    }调用PhoneWindow的setContentView:
123456789101112@Ove...阅读全文

结合源码谈谈Activity的exported属性 | 游戏极客

作者:JerryXia | 发表于 , 阅读 (31)
Activity的exported属性在单个App可能用得比较少,但对于对外接口的Activity或公司内部多个应用间接口调用的设计会有比较大的影响。本文基于android 6.0.1的源码谈谈Activity的exported属性,内容分为2部分:
系统如何设定exported值如何合理设置exported系统如何设定exported值我们知道在AndroidManifest.xml文件中,四大组件都有android:exported属性,是个boolean值,可以为true或false如:1234<activity android:name=".MainActivity" android:label="@string/app_name"  android:exported="false">
我们这里只讲activity相关,但对其他组件也有参考意义,大家可以去研究。android:exported是个可选属性,它不像android:name是必须设置的。那么,Android系统是如何设置exported属性的值呢?通过阅读系统源码,我们知道AndroidManifest.xml...阅读全文

tvOS视差按钮的ObjC实现 | Animatious 一起动画开源组

作者:JerryXia | 发表于 , 阅读 (10)


介绍苹果在最新发布的Apple TV里引入了有趣的图标设计具体说来 图标由2-5个分层图层构成 在图标被选中的时候 图标内每个图层进行不同幅度的位移 从而形成视觉上具有深度距离感的视差效果 图标构成和效果可以见视频:  
这种效果很适合用于多媒体类应用 例如图书或者电影封面 让封面变得立体生动 然而这种效果目前只能在Apple TV的tvOS里见到所以 如何在iOS上做出同样的效果呢?现在就让我们一起研究下视差按钮的实现原理 并且自己实现一个吧 ^_^  
原理假设我们已经有了以下图片:(你可以从下载链接下载已经分层的四张图片)基于这四张图片 我们该怎么对其进行变换来达到tvOS的视差效果呢?重新观察上文中苹果官方的例子视频 我们可以得出以下结论:  
1. 总图层在旋转 但不同于一般在屏幕平面上的旋转 而是相对屏幕具有一定夹角的旋转如果不太了解这种旋转是怎么发生的 我们可以看一张有关 CATransform3D 的图:我们常用的 CGRect 有 X 和 Y 两个位置参数 而 CATransform3D 可以理解为在日常的两个轴以外加了 Z 轴 方向为从手机上表面竖直向...阅读全文

SCCatWaitingHUD的Objc代码实现 | Animatious 一起动画开源组

作者:JerryXia | 发表于 , 阅读 (17)

介绍这个创意其实来源于微博上@画渣程序猿mmoaay转发并艾特我的的一组gif图看到图的时候 我先对图大致进行了结构和层次的区分在设计物体动效的时候,首先是要对动画的不同对象进行拆分,在这里,老鼠,猫眼睛,眼皮,以及猫脸,他们各自的行为分别是不同的,因此分为不同的图层 

在整体动画进行的时候,他们各自的layer所执行的动画是不同的看起来这个控件很简单,接下来我们就来分析一下写出这样一个控件需要注意的关键点吧~
分析先确认我们要做成什么样的控件  
首先 这是一个等待动画 所以应该做成一个HUD类型的控件这样可以在当前window的上方出现和消失而不影响当前视图的展示所以我们就要在应用当前默认的UIWindow上再添加一个UIWindow 这样可以在全局任何地方调用这个HUD 同时我们的HUD也要实现全局的单例模式  
其次是动画 最初的动画其实并不难只是眼睛图层和老鼠图层围着各自的中心点旋转 且拥有相同的运动周期 这样能让他们在相同时间内移动的弧度是相同的 产生眼睛跟着老鼠走的感觉

最后是眼皮和眼珠的运动协调由于眼珠做的是匀速圆周运动 而眼皮做的是直线缩放运动 ...阅读全文

在 Vim 中多行注释

作者:JerryXia | 发表于 , 阅读 (16)
在 Vim 中多行注释What's a quick way to comment/uncomment lines in vim?
Stackoverflow 上的一个关于 Vim comments 的问题有很多不错的答案,记录其中一个简单基础的方法。
首先,将光标移动到想要注释的代码块第一行然后 Ctrl + V (Ctrl + Q for Gvim)进入 Visual block mode移动光标到要注释的代码末行Shift + i(大写 I)添加行注释 // 或 #最后按下 EscGive it a second to work.
Tuesday, Jun 17th, 2014in...阅读全文