enter image description here

ViewStub在以开始学安卓的时候就有听说过了,但至今使用的次数都不多,只是在一些加载失败显示错误界面之类的情况用到。虽然他是布局优化的工具之一,不过不得不说,他的实际使用频率还是偏低,可能是我优化的不够多。逃..
他的使用形式是下面这样,在xml中

<ViewStub
    android:id="@+id/am_demoStub_vs"
    android:layout="@layout/content_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

然后在我们的代码。

if (demoStubView == null) {
   ViewStub mViewStub = (ViewStub) view.findViewById(R.id.am_demoStub_vs);
   demoStubView = mViewStub.inflate();
}
Read more »

enter image description here

乱折腾了一年,又是一年,到了今天开始七天的年假。
一年前,还在做所谓的创业,还在坚持着渺茫的希望。
像很多人说的那样的一句话:”那时候还很好,很想回到过去。”

但我不要,我不想回去。
记得过去,更好的走下去。
成长,没有后退的路。

面对,作出选择,改进才是一条康庄大道。
就像这张我喜欢的w7默认墙纸一样,突破寒冷看到的那一缕光。

只要坚持,梦想总是可以实现的。

时间,时间,还是时间。不知不觉de过了一年,从学校到社会的切换。写总结这种事,对于我这种粗人,多少觉得有点别扭。

总结
到底要记录点什么?
得与失?
成长的故事?迷惑?

Read more »

enter image description here

好久没来更新了,加了快一个月的班,终于快看到曙光了,呵,虽然只是搭建完功能框架和最紧急的需求功能。后面还有很多要加上去的功能在挥手。

花了周日一天和两个工作日的晚上,总算看完了 Programming in Objective-C,整本五百多页,感觉应该是有扎实的Cjava基础原因,整本读起来还是很轻松,加上基本没什么生词量。
enter image description here
虽然这广州天气也是见了鬼了,居然冷到
下雪下雪下雪
回去加个班,这风雨一吹,直接发起烧来,整个人真是跪了,不过感觉自己还是挺顽强的啊。
哈哈。这都能看的下书。

部分涉及到C的基础的实在是在熟悉了,当初高三毕业暑假就在图书馆看这本《C primer plus》

enter image description here

整个暑假朝八晚六的就这样耗在图书馆,边看边敲了两个多月才搞定!!加上读大学时候看了下K&R的经典。基本学会了。想想当年好像混的还是尖子班,是啊,大学也分班。在A班期末考个96分,应该也是不错的吧。


好了,我的好朋友Shelley提醒我要早点睡觉了,今天就不写了,洗澡睡觉。

后记

今天没后记。

与友人共躺琶洲塔江堤边畅谈人生

最近公司开新项目,一直加班,任务量很满,基本都排到过年后回来的二月底了。。。所以最近没什么时间写文章。
今天周日,终于有点时间缓冲,现在写点项目中遇到的内容,做点分享。

今天说的是关于BaseActivityActionBar个人觉得的最佳实践。

相信这个类名字对于很多人来说应该再熟悉不过了,毕竟开发就避免不了这两者,每个Activity顶部基本都会有一条ActionBar,当然我指的不是这个类本身,而是指代那个标题栏。
enter image description here

我相信我们基本每个界面都有这个东西存在,而且有时候看到一些项目的这标题栏用的不是系统的Actionbar

而在theme里面写的是noActionbar的主题,
接着自己多写一个定制的bar的样式的xml文件,
最后再用include之类的来做。

可能因为有时候那个PM的需求太不按常规Android风格出牌了,只能自己做一个,不知你们有没遇到过,但我是遇到不少了,例如要求title是居中,加粗的。
后来谷歌出了个ToolBar的东西,他确实带来了不少惊喜,让我们可以有更高的定制程度,毕竟人家就是一个viewGroup类来的,但即使有了一个ToolBar,有一样东西是少不了的,那就是

我们每个界面都需要单独的去添加这个view,同时各种的设置,那么问题来了,我们能否简化这部分工作呢?

Read more »

我们自定义View的时候难免会需要到滚动的状态,而Scroller可以帮助我们做到顺滑的滚动。
使用的基本套路是下面这样的,然后我们需要滚的的时候调用下smoothScrollTo函数就可以了。

Scroller mScroller = new Scroller(context);

private void smoothScrollTo(int destX, int destY) {
    int scrollX = getScrollX();
    int delta = destX - scrollX;
    mScroller.startScroll(scrollX, 0, delta, 0, 1000);
}

@Override
public void computeScroll() {
    if (mScroller.computeScrollOffset()) {
        scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
        postInvalidate();
    } 
}

我们知道这个Scroller本身是不能移动我们View的,最终还是要靠本身的scrollTo函数。通过我们希望的滑动距离和时间,然后计算出每次滚动的具体,一直就那样一点点的滚动,从而实现弹性滑动的效果。

现在我们就去看下他背后是做了什么。

Read more »