android 控件

gallery 的默认child 都为 wrap_content

viewPager child的param 默认为 fill_parent

有疑问时仅供参考

无论你xml怎么设,他们默认都是这个param。。。

android程序使用gae

Google plugin for eclipse 这个插件很牛,使我们直接创建 android连接 gae的程序,他会建立两个project,一个是android,一个是webApp。

google 相关 doc在:https://developers.google.com/eclipse/docs/appengine_connected_android

教学视频在:http://www.youtube.com/watch?v=M7SxNNC429U

文本在:http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/

理论中跟着教程走就ok,但是小弟发现有几个坑在里面,很奇怪。。。他是怎么演示成功的?fuck。。。

1.新建 App Engine Connected Android Project 时提示android-sdk-mac/tools/lib/proguard.cfg (not found), 这个很坑爹,绝对是插件问题。在其它的android项目中都有这个proguard.cfg,随便找一个拷贝到那里就ok了,否则很难搞。 继续阅读“android程序使用gae”

实现跟手的TabActivity效果

 

 author by afei

利用 android-support-v4 中的ViewPager可以轻松的实现跟手滑动。但是只支持 View 和 Fragment(也是利用view)。

 

之前也考虑过使用 ViewFliping 和 gallery ,但是都要将Activity转成View才可以。但是这样就会失去activity的特性。思来想后,还是改成Fragment靠谱点。

 

总体思路是这样:将本来放在TabActivity中的Activity们都改成 Fragment, 然后修改TabActivity,使其TabHost中content和width和height为0,然后把pager和tabHost关联起来。很trick。。。但是效果达到。

 

 

关键是如何修改activity至fragment,有没有这个可行性?

答案是必须应该可以的!万一有问题,也是可以商量的嘛。。。

1.将 extends Activity 改为 extends Fragment, 如果是 ListActivity 就改为 ListFragment。。。这明显就是为了修改方便啊。。。

2.一定会有XX出现,但是一定不多,fragment 的生命周期和 activity 很相似,包括onActivityResult() onStart() onPause() 等等。都有。

这里主要在onCreate()中,因为我们onCreate() 中会有 setContent(R.layout.layout_id) 恩,这里一定会报错,因为在fragment中单独抽出来了一个函数 onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState),把跟初始化view的相关代码都考到这个函数中就ok了,简单啊。将setContent 变为 inflater.inflate(R.layout.choose_accompany_layout, null) 然后return就ok。

3.最后一步,我们的代码中会有一些用到activity 和context 的地方,比如 getContentResolver() 和 其它的函数,这里只需要变为 getActivity() 就ok。因为fragment 中会和 外界的activity绑定起来。直接调用就可以。

修改完毕!!!

 

 

继承 FragmentTabsPager(代码在ChannelCommon中), 在onCreate()中调用 addTab(), 需要几个tab页就加入几次,然后这可以完美实现跟手滑动的tabActivity效果了!!!哇哈哈。

 

 

FragmentTabsPager 代码 : 继续阅读“实现跟手的TabActivity效果”

micolog绑定域名

 

这个说起来很悲剧。。。因为只有google for business 才可以使用这项功能。而要申请这种帐户必须要有自己的独立域名才行,如果没有就没戏了。。。呵呵

本来每一个engine app 都有一个 appname.appspot.com 的子域名,但是很遗憾被某防火墙给封了。。。将www.afeihehe.com直接CNAME到 afeihehe1234en.appspot.com是不行的,因为google服务器不允许这样瞎搞。。。

主要是利用google的一项服务。把自己的域名CNAME到ghs.google.com, 然后在google的gae服务中配置将www.afeihehe.com 重定向到 afeihehe1234en.appspot.com, 这样才可以。原理就是这样。

因为ghs.google.com现在能用,之前也是时断时续的。。。所以现在也可以这样翻墙。

所以现在 www.afeihehe.com 是可以访问的,呵呵

具体可见这些文章:

http://hi.baidu.com/foxvip/blog/item/bfa09a25adb16d6f34a80f89.html

http://www.lylzone.info/2011/02/17/appspotbeiqiang.html (主要是第二种)

http://iyouf.info/bind-domain.html

http://hi.baidu.com/zhexuezhishen/blog/item/2be69e81f65ffcc09023d97d.html

 

如何利用gae做自己的博客系统

 

见   http://www.watch-life.net/wordpress/wordpress-2-gae.html 和  http://www.xshagua.com/221.html#more-221

俺只做两点补充:遇到了两个问题,相当的恶心。

1.我是MAC系统,python针对mac有个工具,能点击按钮发布,发布时有个错误:urllib2.URLError: urlopen error [Errno 54]

以为是python没搞定,又下了最新的python包,不行,然后使用了vpn去翻墙。翻了墙就能deploy成功了!

然后我又断开,再deploy,发现还是成功的,我fuck。。。就不敢肯定是vpn的原因了。。。我FUCK。。。总之是连了VPN后就OK了。。。

 

2.打开http://afeihehe2234.appspot.com/ 说error,说 查看LOG,看LOG后发现是

NeedIndexError: The index for this query is not ready to serve. See the Datastore Indexes page in the Admin Console

一般是数据库的索引还没有生效,有人说用了四小时才生效,我边搞边试,10分钟后就能打开了。

 

 

只可惜,在天朝,需要翻墙,呵呵