`
dydytd3400
  • 浏览: 23035 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

android layout Java代码生成器

阅读更多

  通过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

分享到:
评论

相关推荐

    Android layout converter

    这时,\"Android Layout Converter\"插件便应运而生,它能够帮助开发者快速地从布局设计视图中自动生成对应的XML代码,极大地提高了开发效率。 Android Layout Converter是一款专为Android Studio设计的插件,它的...

    Android高级应用源码-java代码动态生成控件.zip

    这个"Android高级应用源码-java代码动态生成控件.zip"文件可能包含了一些示例代码,展示了如何在Java代码中动态创建和管理Android UI组件。下面我们将深入探讨这一主题。 1. **动态创建控件的基本步骤**: - 首先...

    android layout 设计软件

    "android layout 设计软件"很可能是一款专为Android开发人员设计的图形化工具,它允许用户通过拖放的方式创建和调整控件,而无需手动编写XML代码。 这款名为"Droid"的软件可能具备以下功能: 1. **图形化界面**:...

    双鱼林安卓Android代码生成器2.0版.zip

    《双鱼林安卓Android代码生成器2.0版》是一款专为Android应用开发设计的工具,旨在提升开发效率,减少重复编码工作。该工具通过自动化的方式帮助开发者快速生成符合规范的Android代码,适用于毕业论文设计、项目源码...

    java代码动态生成控件

    总结一下,Java代码动态生成控件是Android开发中的一个重要技巧,它提供了构建灵活、可扩展用户界面的能力。通过理解并实践这个技术,开发者可以创建更符合用户需求的应用,同时减少对XML布局文件的依赖。

    android根据layout文件生成activity及自动注册 Demo

    - 使用代码生成工具,如JavaPoet或Kotlin的Anvil库,动态生成Activity的源代码,并保存到项目的源码目录。 2. **自动注册Activity**: - 在AndroidManifest.xml中,所有需要的Activity都需要声明。通常,开发者...

    Android源码生成器

    总的来说,"Android源码生成器"是提高开发效率的有力工具,它将界面设计和代码编写相结合,减少了手动编码的工作,使得开发者可以更加专注于业务逻辑和功能实现。然而,随着技术的发展,开发者应当关注最新的开发...

    eclipse android 代码生成插件源码

    标题中的“eclipse android 代码生成插件源码”就是这样一个工具,它能够帮助开发者减少手动编写这些基础代码的时间。 首先,`findViewById`方法是在Android开发中用于从布局文件中查找并返回UI组件对象的。通常,...

    双鱼林安卓Android代码生成器 v2.0.zip

    双鱼林基于安卓Android代码生成器是一款生成安卓手机程序的代码生成器 基于分层模式设计思想,生成的代码直接导入Eclipse软件就可以用的!   真正面向对象设计:系统的整体设计,提供通过使用面向对象的方法,...

    android 二维码生成器源代码

    在Android平台上,二维码生成器是一种常见的工具应用,它允许用户将文本、链接、联系信息等数据编码成二维码,以便他人通过扫描快速获取这些信息。本文将深入探讨Android二维码生成器的源代码,揭示其背后的技术原理...

    Android常用控件(Version 0.1)-32位代码生成器

    总之,"Android常用控件(Version 0.1)-32位代码生成器" 是一款提高Android开发效率的实用工具,通过自动创建和配置控件代码,减少了手动编写的基础工作,让开发者能更专注于业务逻辑和功能实现。随着版本的迭代,这...

    android反编译xml、layout

    5. **签名APK**: 使用Java的keytool或第三方工具对打包后的APK进行签名,以满足Android系统的要求。 关于`apktool`的使用,还有一些重要的知识点: - **版本管理**: `apktool1.5.2`是`apktool`的一个旧版本,随着...

    java源码查看工具-android_layout_xml_view_finder:使用该工具,您可以轻松地从给定的AndroidLayout

    XML文件中提取所有视图名称,并以通用Java编码样式生成表示视图的成员变量的声明和初始化的Java源代码,这可以节省很多宝贵的资源Android应用程序开发人员的时间和精力。 如何运行:首先确保已安装python运行时环境...

    android layout

    ### Android Layout 概述 #### 一、Android系统架构及资源管理 - **系统架构**:Android系统由几个主要层次组成,包括: - **Linux Kernel**:底层硬件的驱动和核心服务。 - **Libraries**:提供一系列库文件...

    android 利用TableLayout自动生成表格

    在Android开发中,TableLayout是布局管理器的一种,它允许我们创建二维的表格形式的界面。这个组件在显示数据或创建表单时非常有用。本文将深入探讨如何利用TableLayout自动生成表格,以及相关的Android开发知识。 ...

    基于Android Studio实现的2048小游戏源代码,安卓大作业

    1. **生成随机数字**:游戏开始时,会在棋盘的空位上随机生成2或4,这可以通过随机数生成器实现。 2. **滑动棋盘**:当用户触摸屏幕滑动时,棋盘上的数字会按照滑动方向进行移动,若有相邻的相同数字,则进行合并。...

    Android 宿舍值日随机生成器.zip

    【Android 宿舍值日随机生成器】是一个基于Android平台的应用程序,主要功能是为宿舍成员随机分配值日任务。这个项目源码是为开发者提供参考和学习的资源,可以帮助那些想要了解Android应用开发,尤其是涉及到随机数...

    android 布局生成图片

    本文将深入探讨如何在Android中实现“布局生成图片”这一技术,以及如何将其与微信分享功能集成。 首先,让我们了解“布局生成图片”的基本原理。在Android中,我们可以利用`ViewGroup`的`drawToBitmap()`方法来...

Global site tag (gtag.js) - Google Analytics