From 62fedb68651c1e23510740c2d761517220d757bd Mon Sep 17 00:00:00 2001 From: caopan Date: Thu, 24 Jun 2021 16:11:19 +0800 Subject: [PATCH 1/2] add resource for sample Signed-off-by: caopan --- UI/CustomLayout/README-zh.md | 18 ++ UI/CustomLayout/README.md | 18 ++ UI/CustomLayout/build.gradle | 36 +++ UI/CustomLayout/entry/build.gradle | 19 ++ UI/CustomLayout/entry/src/main/config.json | 46 +++ .../samples/customlayout/MainAbility.java | 33 ++ .../samples/customlayout/MyApplication.java | 30 ++ .../customlayout/component/CustomLayout.java | 129 ++++++++ .../slice/JavaCreateLayoutAbilitySlice.java | 83 +++++ .../customlayout/slice/MainAbilitySlice.java | 42 +++ .../slice/XmlCreateLayoutAbilitySlice.java | 33 ++ .../main/resources/base/element/string.json | 80 +++++ .../background_ability_java_create_layout.xml | 22 ++ .../base/graphic/background_ability_main.xml | 22 ++ .../background_ability_xml_create_layout.xml | 22 ++ .../base/graphic/button_background.xml | 25 ++ .../resources/base/layout/ability_main.xml | 62 ++++ .../base/layout/ability_xml_create_layout.xml | 284 ++++++++++++++++++ .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../screenshots/device/HomePage.png | Bin 0 -> 22307 bytes .../screenshots/device/JavaCreateLayout.png | Bin 0 -> 24243 bytes .../screenshots/device/XmlCreateLayout.png | Bin 0 -> 43412 bytes UI/CustomLayout/settings.gradle | 15 + 23 files changed, 1019 insertions(+) create mode 100644 UI/CustomLayout/README-zh.md create mode 100644 UI/CustomLayout/README.md create mode 100644 UI/CustomLayout/build.gradle create mode 100644 UI/CustomLayout/entry/build.gradle create mode 100644 UI/CustomLayout/entry/src/main/config.json create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MainAbility.java create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MyApplication.java create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/component/CustomLayout.java create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/JavaCreateLayoutAbilitySlice.java create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/MainAbilitySlice.java create mode 100644 UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/XmlCreateLayoutAbilitySlice.java create mode 100644 UI/CustomLayout/entry/src/main/resources/base/element/string.json create mode 100644 UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_java_create_layout.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_main.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_xml_create_layout.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/graphic/button_background.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/layout/ability_main.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/layout/ability_xml_create_layout.xml create mode 100644 UI/CustomLayout/entry/src/main/resources/base/media/icon.png create mode 100644 UI/CustomLayout/screenshots/device/HomePage.png create mode 100644 UI/CustomLayout/screenshots/device/JavaCreateLayout.png create mode 100644 UI/CustomLayout/screenshots/device/XmlCreateLayout.png create mode 100644 UI/CustomLayout/settings.gradle diff --git a/UI/CustomLayout/README-zh.md b/UI/CustomLayout/README-zh.md new file mode 100644 index 0000000000..8f09a9c384 --- /dev/null +++ b/UI/CustomLayout/README-zh.md @@ -0,0 +1,18 @@ +# 自定义布局 + +### 简介 + +本示例演示了Java UI框架提供的自定义布局能力,用户可根据业务需求创建自定义布局。 + +### 使用说明 + +本示例主界面包含两个按钮。 + +点击javaCreateLayout按钮显示Java代码创建的自定义布局,该布局中展示了不同的子组件; + +点击xmlCreateLayout按钮显示xml创建的自定义布局,可以看到此布局中不同子的组件。 + +### 约束与限制 + +本示例仅支持在标准系统上运行。 + diff --git a/UI/CustomLayout/README.md b/UI/CustomLayout/README.md new file mode 100644 index 0000000000..15dc40eb63 --- /dev/null +++ b/UI/CustomLayout/README.md @@ -0,0 +1,18 @@ +# CustomLayout + +### Introduction + +This example demonstrates how you can customize a layout within the Java UI framework. + +### Usage + +In this example, the home screen contains two buttons. + +You can click the **javaCreateLayout** button to display the custom layout created by using Java code. The subcomponents in the layout are also displayed. + +You can click the **xmlCreateLayout** button to display the custom layout created by using an XML file. The subcomponents in the layout are also displayed. + +### Constraints + +This example can be run only on a standard system. + diff --git a/UI/CustomLayout/build.gradle b/UI/CustomLayout/build.gradle new file mode 100644 index 0000000000..1ce01d8202 --- /dev/null +++ b/UI/CustomLayout/build.gradle @@ -0,0 +1,36 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.huawei.ohos.app' + +ohos { + compileSdkVersion 5 + defaultConfig { + compatibleSdkVersion 4 + } +} + +buildscript { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + jcenter() + } + dependencies { + classpath 'com.huawei.ohos:hap:2.4.4.2' + } +} + +allprojects { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + jcenter() + } +} diff --git a/UI/CustomLayout/entry/build.gradle b/UI/CustomLayout/entry/build.gradle new file mode 100644 index 0000000000..d63e339a83 --- /dev/null +++ b/UI/CustomLayout/entry/build.gradle @@ -0,0 +1,19 @@ +apply plugin: 'com.huawei.ohos.hap' +ohos { + compileSdkVersion 5 + defaultConfig { + compatibleSdkVersion 4 + } + buildTypes { + release { + proguardOpt { + proguardEnabled false + rulesFiles 'proguard-rules.pro' + } + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) +} diff --git a/UI/CustomLayout/entry/src/main/config.json b/UI/CustomLayout/entry/src/main/config.json new file mode 100644 index 0000000000..320dc0152c --- /dev/null +++ b/UI/CustomLayout/entry/src/main/config.json @@ -0,0 +1,46 @@ +{ + "app": { + "bundleName": "ohos.samples.customlayout", + "version": { + "code": 1000000, + "name": "1.0" + } + }, + "deviceConfig": {}, + "module": { + "package": "ohos.samples.customlayout", + "name": ".MyApplication", + "reqCapabilities": [ + "video_support" + ], + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry", + "installationFree": false + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": "ohos.samples.customlayout.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + } + ] + } +} \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MainAbility.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MainAbility.java new file mode 100644 index 0000000000..aa632b20bb --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MainAbility.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout; + +import ohos.aafwk.ability.Ability; +import ohos.aafwk.content.Intent; +import ohos.samples.customlayout.slice.MainAbilitySlice; + +/** + * MainAbility + * + * @since 2021-05-08 + */ +public class MainAbility extends Ability { + @Override + public void onStart(Intent intent) { + super.onStart(intent); + super.setMainRoute(MainAbilitySlice.class.getName()); + } +} diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MyApplication.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MyApplication.java new file mode 100644 index 0000000000..26c9ef08ad --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/MyApplication.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout; + +import ohos.aafwk.ability.AbilityPackage; + +/** + * MyApplication + * + * @since 2021-05-08 + */ +public class MyApplication extends AbilityPackage { + @Override + public void onInitialize() { + super.onInitialize(); + } +} diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/component/CustomLayout.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/component/CustomLayout.java new file mode 100644 index 0000000000..e592fb781e --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/component/CustomLayout.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout.component; + +import ohos.agp.components.AttrSet; +import ohos.agp.components.Component; +import ohos.agp.components.ComponentContainer; +import ohos.app.Context; + +import java.util.HashMap; +import java.util.Map; + +/** + * Custom layout + * + * @since 2021-05-08 + */ +public class CustomLayout extends ComponentContainer + implements ComponentContainer.EstimateSizeListener, ComponentContainer.ArrangeListener { + private final Map axis = new HashMap<>(); + + private int locationX; + + private int locationY; + + private int maxWidth; + + private int maxHeight; + + private int lastHeight; + + public CustomLayout(Context context, AttrSet attrSet) { + super(context, attrSet); + setEstimateSizeListener(this); + setArrangeListener(this); + } + + @Override + public boolean onEstimateSize(int widthEstimatedConfig, int heightEstimatedConfig) { + measureChildren(widthEstimatedConfig, heightEstimatedConfig); + int width = EstimateSpec.getSize(widthEstimatedConfig); + + for (int idx = 0; idx < getChildCount(); idx++) { + Component childView = getComponentAt(idx); + addChild(childView, idx, width); + } + setEstimatedSize(EstimateSpec.getChildSizeWithMode(maxWidth, widthEstimatedConfig, 0), + EstimateSpec.getChildSizeWithMode(maxHeight, heightEstimatedConfig, 0)); + return true; + } + + private void measureChildren(int widthEstimatedConfig, int heightEstimatedConfig) { + for (int idx = 0; idx < getChildCount(); idx++) { + Component childView = getComponentAt(idx); + if (childView != null) { + measureChild(childView, widthEstimatedConfig, heightEstimatedConfig); + } + } + } + + private void measureChild(Component child, int parentWidthMeasureSpec, int parentHeightMeasureSpec) { + LayoutConfig lc = child.getLayoutConfig(); + int childWidthMeasureSpec = + EstimateSpec.getChildSizeWithMode(lc.width, parentWidthMeasureSpec, EstimateSpec.UNCONSTRAINT); + int childHeightMeasureSpec = + EstimateSpec.getChildSizeWithMode(lc.height, parentHeightMeasureSpec, EstimateSpec.UNCONSTRAINT); + child.estimateSize(childWidthMeasureSpec, childHeightMeasureSpec); + } + + private void addChild(Component component, int id, int layoutWidth) { + Position position = new Position(); + position.positionX = locationX + component.getMarginLeft(); + position.positionY = locationY + component.getMarginTop(); + position.width = component.getEstimatedWidth(); + position.height = component.getEstimatedHeight(); + if ((locationX + position.width) > layoutWidth) { + locationX = 0; + locationY += lastHeight; + lastHeight = 0; + position.positionX = locationX + component.getMarginLeft(); + position.positionY = locationY + component.getMarginTop(); + } + axis.put(id, position); + lastHeight = Math.max(lastHeight, position.height + component.getMarginBottom()); + locationX += position.width + component.getMarginRight(); + maxWidth = Math.max(maxWidth, position.positionX + position.width); + maxHeight = Math.max(maxHeight, position.positionY + position.height); + } + + @Override + public boolean onArrange(int left, int top, int width, int height) { + for (int idx = 0; idx < getChildCount(); idx++) { + Component childView = getComponentAt(idx); + Position position = axis.get(idx); + if (position != null) { + childView.arrange(position.positionX, position.positionY, position.width, position.height); + } + } + return true; + } + + /** + * Layout + * + * @since 2021-05-08 + */ + private static class Position { + int positionX = 0; + + int positionY = 0; + + int width = 0; + + int height = 0; + } +} \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/JavaCreateLayoutAbilitySlice.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/JavaCreateLayoutAbilitySlice.java new file mode 100644 index 0000000000..187ff0552b --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/JavaCreateLayoutAbilitySlice.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout.slice; + +import ohos.aafwk.ability.AbilitySlice; +import ohos.aafwk.content.Intent; +import ohos.agp.colors.RgbColor; +import ohos.agp.components.Button; +import ohos.agp.components.Component; +import ohos.agp.components.DirectionalLayout; +import ohos.agp.components.element.ShapeElement; +import ohos.agp.utils.Color; +import ohos.samples.customlayout.ResourceTable; +import ohos.samples.customlayout.component.CustomLayout; + +/** + * Java create layout + * + * @since 2021-05-08 + */ +public class JavaCreateLayoutAbilitySlice extends AbilitySlice { + private static final int COMPONENT_COUNT = 15; + + @Override + public void onStart(Intent intent) { + super.onStart(intent); + DirectionalLayout directionalLayout = new DirectionalLayout(getContext()); + directionalLayout.setPadding(32, 32, 32, 32); + DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig( + DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_PARENT); + directionalLayout.setLayoutConfig(config); + + CustomLayout customLayout = new CustomLayout(this, null); + for (int index = 0; index < COMPONENT_COUNT; index++) { + customLayout.addComponent(getComponent(index + 1)); + } + ShapeElement shapeElement = new ShapeElement(); + shapeElement.setRgbColor(new RgbColor(100, 100, 100)); + customLayout.setBackground(shapeElement); + DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig( + DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); + customLayout.setLayoutConfig(layoutConfig); + directionalLayout.addComponent(customLayout); + super.setUIContent(directionalLayout); + } + + private Component getComponent(int index) { + Button button = new Button(getContext()); + ShapeElement shapeElement = new ShapeElement(); + shapeElement.setRgbColor(new RgbColor(200, 200, 200)); + button.setBackground(shapeElement); + button.setTextColor(Color.WHITE); + DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig(300, 100); + if (index == 1) { + layoutConfig = new DirectionalLayout.LayoutConfig(1080, 200); + button.setText(ResourceTable.String_size01); + } else if (index == 6) { + layoutConfig = new DirectionalLayout.LayoutConfig(500, 100); + button.setText(ResourceTable.String_size02); + } else if (index == 8) { + layoutConfig = new DirectionalLayout.LayoutConfig(600, 600); + button.setText(ResourceTable.String_size03); + } else { + button.setText("Item" + index); + } + layoutConfig.setMargins(10, 10, 10, 10); + button.setLayoutConfig(layoutConfig); + return button; + } +} diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/MainAbilitySlice.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/MainAbilitySlice.java new file mode 100644 index 0000000000..aa0f5d19a6 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/MainAbilitySlice.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout.slice; + +import ohos.aafwk.ability.AbilitySlice; +import ohos.aafwk.content.Intent; +import ohos.agp.components.Component; +import ohos.samples.customlayout.ResourceTable; + +/** + * MainAbilitySlice + * + * @since 2021-05-08 + */ +public class MainAbilitySlice extends AbilitySlice { + @Override + public void onStart(Intent intent) { + super.onStart(intent); + super.setUIContent(ResourceTable.Layout_ability_main); + initComponents(); + } + + private void initComponents() { + findComponentById(ResourceTable.Id_java_create_layout) + .setClickedListener(listener -> present(new JavaCreateLayoutAbilitySlice(), new Intent())); + findComponentById(ResourceTable.Id_xml_create_layout) + .setClickedListener(listener -> present(new XmlCreateLayoutAbilitySlice(), new Intent())); + } +} \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/XmlCreateLayoutAbilitySlice.java b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/XmlCreateLayoutAbilitySlice.java new file mode 100644 index 0000000000..be4b1e13f3 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/java/ohos/samples/customlayout/slice/XmlCreateLayoutAbilitySlice.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ohos.samples.customlayout.slice; + +import ohos.aafwk.ability.AbilitySlice; +import ohos.aafwk.content.Intent; +import ohos.samples.customlayout.ResourceTable; + +/** + * Xml create layout + * + * @since 2021-05-08 + */ +public class XmlCreateLayoutAbilitySlice extends AbilitySlice { + @Override + public void onStart(Intent intent) { + super.onStart(intent); + super.setUIContent(ResourceTable.Layout_ability_xml_create_layout); + } +} diff --git a/UI/CustomLayout/entry/src/main/resources/base/element/string.json b/UI/CustomLayout/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000..b5a84975ff --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/element/string.json @@ -0,0 +1,80 @@ +{ + "string": [ + { + "name": "app_name", + "value": "CustomLayout" + }, + { + "name": "mainability_description", + "value": "Java_Phone_Empty Feature Ability" + }, + { + "name": "xml_create_layout", + "value": "xmlCreateLayout" + }, + { + "name": "java_create_layout", + "value": "javaCreateLayout" + }, + { + "name": "size01", + "value": "1080 * 200" + }, + { + "name": "size02", + "value": "500 * 100" + }, + { + "name": "size03", + "value": "600 * 600" + }, + { + "name": "item2", + "value": "Item2" + }, + { + "name": "item3", + "value": "Item3" + }, + { + "name": "item4", + "value": "Item4" + }, + { + "name": "item5", + "value": "Item5" + }, + { + "name": "item7", + "value": "Item7" + }, + { + "name": "item9", + "value": "Item9" + }, + { + "name": "item10", + "value": "Item10" + }, + { + "name": "item11", + "value": "Item11" + }, + { + "name": "item12", + "value": "Item12" + }, + { + "name": "item13", + "value": "Item13" + }, + { + "name": "item14", + "value": "Item14" + }, + { + "name": "item15", + "value": "Item15" + } + ] +} \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_java_create_layout.xml b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_java_create_layout.xml new file mode 100644 index 0000000000..9143fabbf7 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_java_create_layout.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_main.xml b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_main.xml new file mode 100644 index 0000000000..9143fabbf7 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_main.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_xml_create_layout.xml b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_xml_create_layout.xml new file mode 100644 index 0000000000..9143fabbf7 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/graphic/background_ability_xml_create_layout.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/resources/base/graphic/button_background.xml b/UI/CustomLayout/entry/src/main/resources/base/graphic/button_background.xml new file mode 100644 index 0000000000..b97d048660 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/graphic/button_background.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/UI/CustomLayout/entry/src/main/resources/base/layout/ability_main.xml b/UI/CustomLayout/entry/src/main/resources/base/layout/ability_main.xml new file mode 100644 index 0000000000..2cbeb961c5 --- /dev/null +++ b/UI/CustomLayout/entry/src/main/resources/base/layout/ability_main.xml @@ -0,0 +1,62 @@ + + + + + + +