您的位置:首页 > 移动开发

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的界面如下:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐