APP开发实战149-Android Studio模板的定制使用
2017-01-07 21:26
676 查看
模板的定制使用
在用Android Studio的向导新建项目时,在如下界面显示许多AndroidStudio内置的Activity模板:或在工程中选择新建Activity时,也可以选择内置的Activity模板,界面如下:
这样可以大大提高开发效率。
这些模板放在Android Studio安装路径的如下文件夹中:plugins\android\lib\templates\activities,用户也可以自己定制模板。
在各APP中基本都有登录功能,现参考Android Studio中提供的LoginActivity模板,定制了一个登录功能用的Activity模板,名称为rwLoginActivity,界面如下:
首先编写rwLoginActivity.java代码和activity_rw_login.xml文件实现此Activity,然后在此基础上实现模板。
参考Andr oid Studio提供的模板,要定制一个模板,涉及到以下文件:
template_rw_login_activity.png—对应在Android Studio用向导创建Activity里看到的那个Activity界面示意图
template.xml—定义属性参数,内容如下:
<?xmlversion="1.0"?>
<template
format="5"
revision="1"
name="RuWang LoginActivity"
description="Creates a new loginactivity, allowing users to enter a phone number and password to log in to orregister with your application."
requireAppTheme="true"
//此Activity支持的最小API级别
minApi="17"
minBuildApi="17">
<categoryvalue="Activity" />
<formfactorvalue="Mobile" />
//以下parameter参数和相关属性会在创建Activity时,ConfigureAcitvity界面用到,需要用户输入一些参数值,且向用户显示一些提示信息,default和help的内容支持中英文
<parameter
id="activityClass"
name="Activity Name"
type="string"
constraints="class|unique|nonempty"
default="rwLoginActivity"
help="The name of theactivity class to create" />
<parameter
id="layoutName"
name="Layout Name"
type="string"
constraints="layout|unique|nonempty"
suggest="${activityToLayout(activityClass)}"
default="activity_rw_login"
help="The name of the layoutto create for the activity" />
<parameter
id="activityTitle"
name="Title"
type="string"
constraints="nonempty"
default="登录"
help="The name of theactivity." />
<parameter
id="passwordLength"
name="Password Length"
type="string"
constraints="nonempty"
default="6"
help="设置密码长度"/>
<parameter
id="parentActivityClass"
name="HierarchicalParent"
type="string"
constraints="activity|exists|empty"
default=""
help="The hierarchicalparent activity, used to provide a default implementation for the 'Up'button" />
<parameter
id="packageName"
name="Package name"
type="string"
constraints="package"
default="com.mycompany.myapp" />
<thumbs>
<thumb>template_rw_login_activity.png</thumb>
</thumbs>
<globalsfile="globals.xml.ftl" />
<executefile="recipe.xml.ftl" />
</template>
globals.xml.ftl和recipe.xml.ftl的后缀是ftl,表示这两个文件使用的是FTL(FreeMarkerTemplate Language)语言,这是一种简单的模板编写语言。
globals.xml.ftl—定义属性参数,内容如下:
<?xmlversion="1.0"?>
<globals>
//定义此Activity界面是否有ActionBar,value为true,表示不需要ActionBar
<globalid="hasNoActionBar" type="boolean" value="true"/>
//定义此Activity是否具有"android.intent.action.MAIN"
和"android.intent.category.LAUNCHER"两个属性
<global id="isLauncher"type="boolean" value="${isNewProject?string}" />
//以下两项不用修改,保留原样
<globalid="GenericStringArgument" type="string"value="<#if buildApi lt 19>String</#if>" />
<globals file="../common/common_globals.xml.ftl"/>
</globals>
其中lt是FTL语言关键字,相当于比较运算符“小于”,其它几个类似功能的关键字:
gt:比较运算符"大于"
gte:比较运算符"大于或等于"
lte:比较运算符"小于或等于"
recipe.xml.ftl—对代码文件和资源文件的处理
AndroidStudio提供的LoginActivity模板界面没有图片,rwLoginActivity模板界面有图片,需要在LoginActivity模板的recipe.xml.ftl文件中增加一个copy指令,复制模板资源图片到工程中的资源目录下:
<copyfrom="root/res/drawable"
to="${escapeXmlAttribute(resOut)}/drawable" />
其余部分不需修改。
在root文件夹里包含此Activity相关的代码、资源文件和AndroidManifest文件:
AndroidStudio提供的LoginActivity模板界面有ActionBar,rwLoginActivity模板界面没有ActionBar,需要把LoginActivity模板的AndroidManifest.xml.ftl文件里的主题设置代码改成自己需要的主题名称:
<#ifhasNoActionBar>
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
其余部分不需修改。
LoginActivity.java.ftl可以在之前写好的rwLoginActivity.java文件基础上做修改,导入包名的代码改成:
package${packageName};
类名和父类名改成:
publicclass ${activityClass} extends ${superClass}
密码长度参数的赋值语句改成:
privateint mPasswordLength = ${passwordLength};
其余部分复用rwLoginActivity.java的代码。
activity_login.xml.ftl也可以在之前写好的activity_rw_login.xml文件基础上做修改,里面涉及类名的地方改成:
tools:context="${relativePackage}.${activityClass}"
其余部分复用activity_rw_login.xml的代码。
完成开发后,把rwLoginActivity模板文件夹放在Android Studio安装路径的如下文件夹中:plugins\android\lib\templates\activities,关闭并重启Android Studio,就可以使用rwLoginActivity模板了。
创建rwLoginActivity的界面如下:
相关文章推荐
- APP开发实战151-Android使用try…catch…处理异常
- APP开发实战114-Android Studio打包介绍
- APP开发实战150-Android 提示功能设计(AlertDialog、Toast和Snackbar的使用)
- Android Studio——使用Android ADT最新开发工具后,新建项目出现appcompat v7 他是什么?
- Android开源实战:使用MVP+Retrofit开发一款文字阅读APP
- APP开发实战152-Android使用UncaughtExceptionHandler处理异常
- Android入门教程五之使用AndroidStudio+SDK开发安卓APP
- 拿什么拯救:Android Studio 时代 继续使用Eclipse开发Android app时遇到的几个问题以及解决办法
- Android Studio安装教程,使用Android Studio开发Android APP
- Android开源实战:使用MVP+Retrofit开发一款文字阅读APP
- 使用Android ADT最新开发工具后,新建项目出现appcompat v7 他是什么?
- Android Studio旧模板使用方法(不含fragment)
- gitHub上边android studio开发的开源项目转为Eclipse中的项目,个人调试过的可以使用
- Android开发模板------自定义SimpleCursorAdapter的使用
- 如何使用 App Studio 快速定制你自己的 Universal Windows App
- android studio 1.0开发,有感于android studio 1.0出了不久,新手还不会用,特翻译google官方页面帮助新手开发APP
- android app开发,如何使用/引入第三方扩展jar
- android studio开发教程 ListActivity的2种使用方法:系统默认布局和自己定义布局
- Android AppWidget开发实战
- 如何使用 App Studio 快速定制你自己的 Universal Windows App