通过freemaker将写好的android layout文件生成对应的java代码,主要生成Activity 和 Fragment两类,这样可以减少很多开发中的机械操作,再也不用一一对应的把layout文件中View标签copy到java代码中了。

详细思路

  读取指定路径下的layout文件,根据layout文件命名规则生成对应Activity或者Fragment的Java类,并将布局文件中对应的 View标签生成该Java类的属性对象,且根据View标签的id属性生成该属性的变量名。

该项目下的 layout文件的命名规则如下:

  hello_word_activity.xml,该布局文件则会生成一个 HelloWordActivity.java文件,且继承于RoboFragmentActivity(用于roboguice框架,不习惯该框架的变更模版就行了)

  main_fragment.xml,对应该布局文件则会生成MainFragment.java文件,并继承于RoboFragment(同上)

  java文件中会根据配置生成对应的一些package引入和基础的代码,接下来则根据layout文件中的标签属性生成对应的Java属性对象,规则如下:

<TextView andorid:id=”@id+/hello_word_text”/>

对应生成如下java代码:

import android.widget.TextView ;//这段引入代码是在文件头部分,这里只是为了简便,就没加上类名等代码@InjectView(R.id.hello_word_text)private TextView mHelloWordText;

  每个layout文件中,只有写了 android:id=”@id+/”这一属性的标签才会在对应java类中声明对应变量

  对象的变量名的生成规则也可自行定义,详情参考代码中NameGenerater这一抽象类,其中很多生成规则的东西都可以在这里实现其抽象方法,在CodeBuilder的代码中的defaultNameGenerater对象算是一个比较详尽的列子。

  该项目是一个个人项目,该例子仅提供了一个思路,很多地方考虑得并不周全,写得也不够完善,欢迎大家讨论并共同完善他。

项目开放git仓库地址:https://git.oschina.net/eleaf/android-layout2code-builder.git

转载请注明作者:楼若生 并附上原文链接:http://dzlg.iteye.com/admin/blogs/2124556

更多相关文章

  1. 加速Android(安卓)Studio/Gradle构建
  2. Android(安卓)离线安装宝典
  3. Android(安卓)- 文件读写操作 总结
  4. Android高手进阶教程(五)之----Android(安卓)中LayoutInflater的
  5. Android夜间模式实现,通过在window上加一层半透明的View
  6. launcher修改--获取屏幕缩略(预览)图
  7. 关于Android中传递数据的一些讨论
  8. [Google Android] Creating Your Own Spelling Checker Service
  9. android 网络图片双缓存

随机推荐

  1. Android面试知识点汇总
  2. Android(安卓)贝塞尔曲线的使用 操作
  3. 客户端按下登陆键后无反应
  4. Android将数据存放到SDCard
  5. android 屏幕适配问题
  6. android keyboard
  7. OpenGL ES之GLSurfaceView学习四:Android
  8. Android UI开发第二篇――多级列表(Expand
  9. 《Android平台开发之旅》学习笔记
  10. Android Eclipse 源码工程调试