id=“parentActivityClass”
name=“Hierarchical Parent”
type=“string”
constraints=“activity|exists|empty”
default=“”
help=“The hierarchical parent 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” />
template_welcome_activity.png
这里的配置和名称都是由template中进行配置的
thumb表示as显示的图片
注意:<parameter
id=“parentActivityClass”
name=“Hierarchical Parent”
type=“string”
constraints=“activity|exists|empty”
default=“”
help=“The hierarchical parent activity, used to provide a default implementation for the ‘Up’ button” />
不能删除,否则as创建时会出错,其他的配置这里已经删除,
如果需要,可以去LoginActivity中copy
id :唯一标识,最终会通过它获取字符串 是否选中等等
name:界面上的左边的提示语
type : 输入值类型 可以是string int boolean 等等
constraints:填写值的约束 如文件名不能重复等等
suggest:建议值,比如填写ActivityName的时候,会给出一个布局文件的建议值。
default:默认值
help:显示的帮助提升语
2、globals.xml.ftl
一般不用动
3、recipe.xml.ftl
<?xml version="1.0"?><#if appCompat && !(hasDependency(‘com.android.support:appcompat-v7’))>
</#if>
<merge from=“root/AndroidManifest.xml.ftl”
to=“${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml” />
<merge from=“root/res/values/styles.xml.ftl”
to=“${escapeXmlAttribute(resOut)}/values/styles.xml” />
<instantiate from=“root/res/layout/activity_welcome.xml.ftl”
to=“escapeXmlAttribute(resOut)/layout/{escapeXmlAttribute(resOut)}/layout/escapeXmlAttribute(resOut)/layout/{layoutName}.xml” />
<instantiate from=“root/src/app_package/WelcomeActivity.java.ftl”
to=“escapeXmlAttribute(srcOut)/{escapeXmlAttribute(srcOut)}/escapeXmlAttribute(srcOut)/{activityClass}.java” />
copy :从root中copy文件到我们的目标目录,比如我们的模板Activity需要使用一些图标,
那么可能就需要使用copy标签将这些图标拷贝到我们的项目对应文件夹。
merge : 合并的意思,比如将我们使用到的strings.xml合并到我们的项目的stirngs.xml中
instantiate : 和copy类似,但是可以看到上例试将ftl->java文件的,也就是说中间会通过一个步骤,
会生成root下面对应的代码,也就是说你待会root下面的Activity写了什么就会生成什么
open:在代码生成后,打开指定的文件,比如我们新建一个Activity后,
默认就会将该Activity打开。
a、合并AndroidManifest
<merge from=“root/AndroidManifest.xml.ftl”
to=“${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml” />
b、合并styles
<merge from=“root/res/values/styles.xml.ftl”
to=“${escapeXmlAttribute(resOut)}/values/styles.xml” />
c、合并dimens
<merge from=“root/res/values/dimens.xml”
to=“${escapeXmlAttribute(resOut)}/values/dimens.xml” />
d、合并strings
<merge from=“root/res/values/strings.xml.ftl”
to=“${escapeXmlAttribute(resOut)}/values/strings.xml” />
同时这里引入的activity和xml名称都需要和root中的进行对应,
当然合并的内容也需要对应
- root目录
1、在res中
a、dimens和strings的写法可以参考LoginActivity
b.styles的写法(styles.xml.ftl)
- src中是创建的activity(WelcomeActivity.java.ftl)
package ${packageName};
import ${superClassFqcn};
import android.os.Bundle;
import android.os.Handler;
import android.content.Intent;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import java.lang.ref.WeakReference;
public class ${activityClass} extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
//for a moment start new activity
MyHandler myHandler = new MyHandler(this);
myHandler.sendEmptyMessageDelayed(0, 3000);
}
private static class MyHandler extends Handler {
private WeakReference mActivity;
public MyHandler(WelcomeActivity mActivity) {
this.mActivity = new WeakReference(mActivity);
}
@Override
public void handleMessage(Message msg) {
【附】相关架构及资料
源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。
omeActivity> mActivity;
public MyHandler(WelcomeActivity mActivity) {
this.mActivity = new WeakReference(mActivity);
}
@Override
public void handleMessage(Message msg) {
【附】相关架构及资料
源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。
[外链图片转存中…(img-8zJzNSOc-1725994941490)]