商业网站建设教程,做网站建设费用预算,广西seo搜索引擎优化,榆次做网站###1.概述 最近有很多人反馈#xff0c;有些哥们不喜欢看文字性的东西#xff0c;还有一些哥们根本就不知道我在搞啥子#xff0c;那么以后我就采用博客加视频的方式#xff0c;我们可以选择看视频讲解#xff1a;http://pan.baidu.com/s/1i5uh2uD 内涵段子项目资料及…###1.概述 最近有很多人反馈有些哥们不喜欢看文字性的东西还有一些哥们根本就不知道我在搞啥子那么以后我就采用博客加视频的方式我们可以选择看视频讲解http://pan.baidu.com/s/1i5uh2uD 内涵段子项目资料及源码地址https://ke.qq.com/course/193277#tuine533cfc 大家不要被我的演示忽悠了我手机上面的确有两个内涵段子的apk,接口也是内涵段子的接口,接口和素材待会在源码里面发给大家但是所演示的是我自己写的。这里主要是讲怎么去自定义我们的Android Studio 模板 如果你到目前还不知道我在哪个码头请先看看这里**利用自定义模板分分钟开发一个页面**http://blog.csdn.net/z240336124/article/details/53053765 ###2实现 2.1 IDE中模板的文件结构 我们首先来参考一下IDE中自带的模板文件结构我们Android Studio 的模板都放在 安装目录下\plugins\android\lib\templates\activities 上图都是我工程目录下的模板至于效果请看前篇讲解那么在Android Studio中最简单的activity模板就是:Empty Activity了我们打开该模板文件首先对文件结构有个直观的了解请看图 那么接下来就对这些文件及里面的语法逐个介绍 2.1.1 template.xml ?xml version1.0?
templateformat5revision5nameEmpty ActivityminApi7minBuildApi14descriptionCreates a new empty activitycategory valueActivity /formfactor valueMobile /parameteridactivityClassnameActivity Nametypestringconstraintsclass|unique|nonemptysuggest${layoutToActivity(layoutName)}defaultMainActivityhelpThe name of the activity class to create /!-- .....此处省略几行无关紧要代码...... --!-- 128x128 thumbnails relative to template.xml --thumbs!-- default thumbnail is required --thumbtemplate_blank_activity.png/thumb/thumbsglobals fileglobals.xml.ftl /execute filerecipe.xml.ftl //template复制代码这里其实可以不做过多解释对着新建模板的样式看一下大概就可以理解了 这个都是和 template.xml 对应的基本最多的是我标出来的parapmeter部分下面来解释一下每个字段的含义 id 唯一标识最终会通过它获取字符串 是否选中等等name界面上的左边的提示语type : 输入值类型 可以是string int boolean 等等constraints填写值的约束 如文件名不能重复等等suggest建议值比如填写ActivityName的时候会给出一个布局文件的建议值。default:默认值help:显示的帮助提升语
复制代码2.1.2 globals.xml.ftl 这个其实没什么好看的 就一些id对应的初始值而已 globalsglobal idhasNoActionBar typeboolean valuefalse /global idparentActivityClass value /global idsimpleLayoutName value${layoutName} /global idexcludeMenu typeboolean valuetrue /global idgenerateActivityTitle typeboolean valuefalse /#include ../common/common_globals.xml.ftl /
/globals
复制代码**2.1.3 ** recipe.xml.ftl ?xml version1.0?
recipe#include ../common/recipe_manifest.xml.ftl /#if generateLayout#include ../common/recipe_simple.xml.ftl /open file${escapeXmlAttribute(resOut)}/layout/${layoutName}.xml /
/#ifinstantiate fromroot/src/app_package/SimpleActivity.java.ftlto${escapeXmlAttribute(srcOut)}/${activityClass}.java /open file${escapeXmlAttribute(srcOut)}/${activityClass}.java /
/recipe
复制代码这个需要重点介绍一下了待会一新建会自动生成什么文件或是生成什么代码都是靠它来指定 copy :从root中copy文件到我们的目标目录比如我们的模板Activity需要使用一些图标那么可能就需要使用copy标签将这些图标拷贝到我们的项目对应文件夹。 merge : 合并的意思比如将我们使用到的strings.xml合并到我们的项目的stirngs.xml中 instantiate : 和copy类似但是可以看到上例试将ftl-java文件的也就是说中间会通过一个步骤会生成root下面对应的代码也就是说你待会root下面的Activity写了什么就会生成什么 open:在代码生成后打开指定的文件比如我们新建一个Activity后默认就会将该Activity打开。 **2.1.4 ** freemarker语法 我们可以看到这个 #if generateLayout ... 这个其实也是一种语法我们写过程序基本就知道是什么意思我们看看 root/src/app_package下面的SimpleActivity.java.ftl就大概知道了 package ${packageName};// 包名 用 ${ } 引用import ${superClassFqcn};
import android.os.Bundle;public class ${activityClass} extends ${superClass} {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 这个我们大概还记得是一个可以勾选的参数 这里就用了if语法
#if generateLayoutsetContentView(R.layout.${layoutName});
/#if}
}
复制代码3 小结 那么现在我们就知道IDE的模板结构以及格式了那么我们就可以自定义了 template.xml他就是用来指定我们的参数就是供用户选择和自定义globals.xml.ftl : 它就是用来初始化一些参数比如需不需要ActionBar 等等recipe.xml.ftl 它就是用来应用我们root文件夹下的资源哪些需要copy哪些需要合并打开等等root文件夹 存放对应源码的ftl文件以及资源文件待会生成的代码都会该文件夹下的一样3 开始撸代码 在这里估计我基本写不清楚了这个不是***三言两语为成功干杯***的事那么这个自己录个视频讲解http://pan.baidu.com/s/1i5uh2uD***视频中不光讲了自定义开发模板还讲了一些其他的***。大家也可以自己开始尝试着去写了源码和素材请在下面下载。 附源码地址http://download.csdn.net/detail/z240336124/9674377 内涵段子项目资料及源码地址https://ke.qq.com/course/193277#tuine533cfc