Browse Source

Initial AAInfographics (AAChartCore-Kotlin)

An An 5 years ago
parent
commit
b05f44063c
100 changed files with 2628 additions and 0 deletions
  1. BIN
      .gradle/5.1.1/executionHistory/executionHistory.bin
  2. BIN
      .gradle/5.1.1/executionHistory/executionHistory.lock
  3. BIN
      .gradle/5.1.1/fileChanges/last-build.bin
  4. BIN
      .gradle/5.1.1/fileContent/fileContent.lock
  5. BIN
      .gradle/5.1.1/fileHashes/fileHashes.bin
  6. BIN
      .gradle/5.1.1/fileHashes/fileHashes.lock
  7. BIN
      .gradle/5.1.1/fileHashes/resourceHashesCache.bin
  8. 0 0
      .gradle/5.1.1/gc.properties
  9. BIN
      .gradle/5.1.1/javaCompile/classAnalysis.bin
  10. BIN
      .gradle/5.1.1/javaCompile/jarAnalysis.bin
  11. BIN
      .gradle/5.1.1/javaCompile/javaCompile.lock
  12. BIN
      .gradle/5.1.1/javaCompile/taskHistory.bin
  13. BIN
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  14. 2 0
      .gradle/buildOutputCleanup/cache.properties
  15. BIN
      .gradle/buildOutputCleanup/outputFiles.bin
  16. 0 0
      .gradle/vcs-1/gc.properties
  17. 5 0
      .idea/codeStyles/codeStyleConfig.xml
  18. 4 0
      .idea/encodings.xml
  19. 19 0
      .idea/gradle.xml
  20. 11 0
      .idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
  21. 12 0
      .idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
  22. 11 0
      .idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
  23. 12 0
      .idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
  24. 12 0
      .idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
  25. 12 0
      .idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
  26. 12 0
      .idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
  27. 10 0
      .idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
  28. 13 0
      .idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
  29. 10 0
      .idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
  30. 9 0
      .idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
  31. 10 0
      .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
  32. 9 0
      .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
  33. 13 0
      .idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
  34. 10 0
      .idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
  35. 10 0
      .idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
  36. 10 0
      .idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
  37. 13 0
      .idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
  38. 10 0
      .idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
  39. 10 0
      .idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
  40. 10 0
      .idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
  41. 13 0
      .idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
  42. 10 0
      .idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
  43. 9 0
      .idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
  44. 13 0
      .idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
  45. 10 0
      .idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
  46. 10 0
      .idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
  47. 13 0
      .idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
  48. 10 0
      .idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
  49. 13 0
      .idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
  50. 12 0
      .idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
  51. 12 0
      .idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
  52. 12 0
      .idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
  53. 12 0
      .idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
  54. 10 0
      .idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
  55. 10 0
      .idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
  56. 9 0
      .idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
  57. 11 0
      .idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
  58. 11 0
      .idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
  59. 11 0
      .idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
  60. 11 0
      .idea/libraries/Gradle__junit_junit_4_12_jar.xml
  61. 11 0
      .idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
  62. 11 0
      .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
  63. 11 0
      .idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
  64. 11 0
      .idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
  65. 11 0
      .idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
  66. 11 0
      .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_31_jar.xml
  67. 11 0
      .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_31_jar.xml
  68. 11 0
      .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_31_jar.xml
  69. 11 0
      .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_31_jar.xml
  70. 11 0
      .idea/misc.xml
  71. 9 0
      .idea/modules.xml
  72. 12 0
      .idea/runConfigurations.xml
  73. 19 0
      AAChartCore-Kotlin.iml
  74. 19 0
      AAInfographics.iml
  75. 1 0
      app/.gitignore
  76. 29 0
      app/app.iml
  77. 35 0
      app/build.gradle
  78. 21 0
      app/proguard-rules.pro
  79. 24 0
      app/src/androidTest/java/com/aachartmodel/aainfographics/ExampleInstrumentedTest.kt
  80. 21 0
      app/src/main/AndroidManifest.xml
  81. 421 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAChartModel.kt
  82. 135 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAChartView.kt
  83. 66 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAColor.kt
  84. 118 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAGradientColor.kt
  85. 204 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAOptionsConstructor.kt
  86. 99 0
      app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AASeriesElement.kt
  87. 132 0
      app/src/main/java/com/aachartmodel/aainfographics/CustomStyleChartComposer.kt
  88. 42 0
      app/src/main/java/com/aachartmodel/aainfographics/MainActivity.kt
  89. 158 0
      app/src/main/java/com/aachartmodel/aainfographics/MixedChartComposer.kt
  90. 335 0
      app/src/main/java/com/aachartmodel/aainfographics/SpecialChartComposer.kt
  91. 34 0
      app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  92. 74 0
      app/src/main/res/drawable/ic_launcher_background.xml
  93. 19 0
      app/src/main/res/layout/activity_main.xml
  94. 5 0
      app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  95. 5 0
      app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  96. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher.png
  97. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher_round.png
  98. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher.png
  99. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher_round.png
  100. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher.png

BIN
.gradle/5.1.1/executionHistory/executionHistory.bin


BIN
.gradle/5.1.1/executionHistory/executionHistory.lock


BIN
.gradle/5.1.1/fileChanges/last-build.bin


BIN
.gradle/5.1.1/fileContent/fileContent.lock


BIN
.gradle/5.1.1/fileHashes/fileHashes.bin


BIN
.gradle/5.1.1/fileHashes/fileHashes.lock


BIN
.gradle/5.1.1/fileHashes/resourceHashesCache.bin


+ 0 - 0
.gradle/5.1.1/gc.properties


BIN
.gradle/5.1.1/javaCompile/classAnalysis.bin


BIN
.gradle/5.1.1/javaCompile/jarAnalysis.bin


BIN
.gradle/5.1.1/javaCompile/javaCompile.lock


BIN
.gradle/5.1.1/javaCompile/taskHistory.bin


BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


+ 2 - 0
.gradle/buildOutputCleanup/cache.properties

@@ -0,0 +1,2 @@
+#Wed May 15 17:34:04 CST 2019
+gradle.version=5.1.1

BIN
.gradle/buildOutputCleanup/outputFiles.bin


+ 0 - 0
.gradle/vcs-1/gc.properties


+ 5 - 0
.idea/codeStyles/codeStyleConfig.xml

@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
+  </state>
+</component>

+ 4 - 0
.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
+</project>

+ 19 - 0
.idea/gradle.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
+        <option name="resolveModulePerSourceSet" value="false" />
+        <option name="useQualifiedModuleNames" value="true" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>

+ 11 - 0
.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:common:1.1.1@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/ae9b923fc99c1fc5a7a9b6cedc6df8b2b8529c54/common-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/2fe5038457e4bb1f59d9753bab7149eb/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/2fe5038457e4bb1f59d9753bab7149eb/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.core/runtime/1.1.1/25df553df10af32bede9dd768a2d15299543d84/runtime-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:common:1.1.1@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/bcdaa509a856d1430e736b102f899aa9870a8f83/common-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/348801209a1e2963ef5d571a899cf423/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/348801209a1e2963ef5d571a899cf423/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata/1.1.1/bf27acaa4953c98cd519756ed7b7caacf94407d4/livedata-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/404d3b8412f99203093572a1346b1cbc/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/404d3b8412f99203093572a1346b1cbc/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata-core/1.1.1/c38818e006ea7a408c05e3090364332d46494ef/livedata-core-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/56c96528598fb98c99688e0578098c35/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/56c96528598fb98c99688e0578098c35/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/runtime/1.1.1/8e4214221b3797b863dc9998d16abb4af043e784/runtime-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/cd3aa3276d3d77c325249d6ee404af8a/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/cd3aa3276d3d77c325249d6ee404af8a/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/viewmodel/1.1.1/d1cc8e805317f171be63c68341f499acda7e42d6/viewmodel-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/6f887e348b5e86dd6c409ff2551b1ed5/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/6f887e348b5e86dd6c409ff2551b1ed5/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:appcompat-v7:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/c7cbefada0b4ad6e7848c352ee36046a/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/c7cbefada0b4ad6e7848c352ee36046a/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/c7cbefada0b4ad6e7848c352ee36046a/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/b80e307bd837f3f2c9798f3f6182dc2a/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/b80e307bd837f3f2c9798f3f6182dc2a/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:collections:28.0.0@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8456c5bc3ac2f6cfc01a0ca1019a21c1/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8456c5bc3ac2f6cfc01a0ca1019a21c1/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.constraint/constraint-layout-solver/1.1.3/bde0667d7414c16ed62d3cfe993cff7f9d732373/constraint-layout-solver-1.1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8d8204074fe6ca6edb90147e3222e10b/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8d8204074fe6ca6edb90147e3222e10b/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8d8204074fe6ca6edb90147e3222e10b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:cursoradapter:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/439cfba4ce37c9a102953fdd23fbcbad/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/439cfba4ce37c9a102953fdd23fbcbad/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:customview:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/7f4c19c0eef7cdb3227cf2d77ff46a1a/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/7f4c19c0eef7cdb3227cf2d77ff46a1a/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:documentfile:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/682634d130fca512fa1f25fb91b914b1/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/682634d130fca512fa1f25fb91b914b1/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:drawerlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/bed17a99b2d57203734f3b76606ba1ca/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/bed17a99b2d57203734f3b76606ba1ca/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/bed17a99b2d57203734f3b76606ba1ca/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:interpolator:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/b1e3b00062348f365ae7bab0f4711fa8/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/b1e3b00062348f365ae7bab0f4711fa8/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:loader:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/1643287b852d15ac217085cda39ecdf4/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/1643287b852d15ac217085cda39ecdf4/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/48f4626bc09061e50725ca2554ebfe01/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/48f4626bc09061e50725ca2554ebfe01/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:print:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/f48b63d6ebe371eb58c4aca8e6dfbd0e/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/f48b63d6ebe371eb58c4aca8e6dfbd0e/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/f48b63d6ebe371eb58c4aca8e6dfbd0e/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/0eca1ae2a79e54fa809e739350af6528/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/0eca1ae2a79e54fa809e739350af6528/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-annotations:28.0.0@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-compat:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/17ba7b9b601b8ece29ee2c070e4e965b/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/17ba7b9b601b8ece29ee2c070e4e965b/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/17ba7b9b601b8ece29ee2c070e4e965b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-ui:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/93ed580a558a08eb7e7d6d95ac20fdcd/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/93ed580a558a08eb7e7d6d95ac20fdcd/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-utils:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/4c088156b5b95aba3a5229e489f2d2a6/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/4c088156b5b95aba3a5229e489f2d2a6/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-fragment:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/0c7e04e45faada5f2ee7caac80cb9416/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/0c7e04e45faada5f2ee7caac80cb9416/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/0c7e04e45faada5f2ee7caac80cb9416/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/9094eb10495678214203c3e2f33408f5/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/9094eb10495678214203c3e2f33408f5/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/9905947c62e9c074935ef9a455c6617e/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/9905947c62e9c074935ef9a455c6617e/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/9905947c62e9c074935ef9a455c6617e/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/a1ea6a78ef015ef825dabe3cb37dbcb5/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/a1ea6a78ef015ef825dabe3cb37dbcb5/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-core/3.0.2/433f4f601a3f3835691d80838dd7ff9414931b05/espresso-core-3.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/c63214c0d67133b5d7365a04267eb3a0/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/c63214c0d67133b5d7365a04267eb3a0/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-idling-resource/3.0.2/6071e2b310c16836ba475a94df377e2f75928546/espresso-idling-resource-3.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:monitor:1.0.2@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/41a359b0e4f4a693041af10869078928/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/41a359b0e4f4a693041af10869078928/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.test/monitor/1.0.2/5764301056100b445e9ba31df7d1b554a55450f6/monitor-1.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 12 - 0
.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml

@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:runner:1.0.2@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8a4bc3b289bac9fef1a0f64e3e5279e2/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/8a4bc3b289bac9fef1a0f64e3e5279e2/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.test/runner/1.0.2/b2ce2342744a66e935dbc4a298259709a4c1f042/runner-1.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:versionedparcelable:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/6ee6d3902f87d46733ae979f7d9c722d/jars/classes.jar!/" />
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/6ee6d3902f87d46733ae979f7d9c722d/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 10 - 0
.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:viewpager:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/5f355ca954e21c2b2232e52a6dbc25ee/res" />
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/transforms-2/files-2.1/5f355ca954e21c2b2232e52a6dbc25ee/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.gson:gson:2.8.5@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.5/f645ed69d595b24d4cf8b3fbb64cc505bede8829/gson-2.8.5.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.5/c5b4c491aecb72e7c32a78da0b5c6b9cda8dee0f/gson-2.8.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup:javawriter:2.1.1@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/5b31387d839a5cdaf5b6de3990da01f7f2b963c5/javawriter-2.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.inject:javax.inject:1@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/a00123f261762a7c5e0ec916a2c7c8298d29c400/javax.inject-1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__junit_junit_4_12_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: junit:junit:4.12@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: net.sf.kxml:kxml2:2.3.0@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/309cd2cff7260e465792fda3dcbb063b730d8050/kxml2-2.3.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-core:1.3@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/ae7787a563e6a1b1f17fd4ac43be3a3c8830cfda/hamcrest-integration-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-library:1.3@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.jetbrains:annotations:13.0@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/5991ca87ef1fb5544943d9abc5a9a37583fabe03/annotations-13.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_31_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.31@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions-runtime/1.3.31/721b62ccbafe51a284ca0d1c5dcfdce8cedd4255/kotlin-android-extensions-runtime-1.3.31.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions-runtime/1.3.31/172e3476313dd6b959f488b7e610a600ea596e34/kotlin-android-extensions-runtime-1.3.31-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_31_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.3.31@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.31/11289d20fd95ae219333f3456072be9f081c30cc/kotlin-stdlib-1.3.31.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.31/d16c788b755be19bf8a7eace113755519a1d7182/kotlin-stdlib-1.3.31-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_31_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.31@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.31/20c34a04ea25cb1ef0139598bd67c764562cb170/kotlin-stdlib-common-1.3.31.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.31/958c401b129f64de74af4b11a0894693edfa168d/kotlin-stdlib-common-1.3.31-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_31_jar.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.31/e652770b6416c6d85934086899ffed3eccd35813/kotlin-stdlib-jdk7-1.3.31.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.31/783da85383e51e79ba3dfaa36f715a4bae3ba863/kotlin-stdlib-jdk7-1.3.31-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 11 - 0
.idea/misc.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CMakeSettings">
+    <configurations>
+      <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
+    </configurations>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/classes" />
+  </component>
+</project>

+ 9 - 0
.idea/modules.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/AAChartCore-Kotlin.iml" filepath="$PROJECT_DIR$/AAChartCore-Kotlin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
+    </modules>
+  </component>
+</project>

+ 12 - 0
.idea/runConfigurations.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>

+ 19 - 0
AAChartCore-Kotlin.iml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="AAChartCore-Kotlin" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="java-gradle" name="Java-Gradle">
+      <configuration>
+        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
+        <option name="BUILDABLE" value="false" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 19 - 0
AAInfographics.iml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="AAInfographics" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="java-gradle" name="Java-Gradle">
+      <configuration>
+        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
+        <option name="BUILDABLE" value="false" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+    </content>
+    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 1 - 0
app/.gitignore

@@ -0,0 +1 @@
+/build

File diff suppressed because it is too large
+ 29 - 0
app/app.iml


+ 35 - 0
app/build.gradle

@@ -0,0 +1,35 @@
+apply plugin: 'com.android.application'
+
+apply plugin: 'kotlin-android'
+
+apply plugin: 'kotlin-android-extensions'
+
+android {
+    compileSdkVersion 28
+    defaultConfig {
+        applicationId "com.aachartmodel.aainfographics"
+        minSdkVersion 15
+        targetSdkVersion 28
+        versionCode 1
+        versionName "1.0"
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+}
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+    implementation 'com.android.support:appcompat-v7:28.0.0'
+    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+    implementation 'com.google.code.gson:gson:2.8.5'
+
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}

+ 21 - 0
app/proguard-rules.pro

@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile

+ 24 - 0
app/src/androidTest/java/com/aachartmodel/aainfographics/ExampleInstrumentedTest.kt

@@ -0,0 +1,24 @@
+package com.aachartmodel.aainfographics
+
+import android.support.test.InstrumentationRegistry
+import android.support.test.runner.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+    @Test
+    fun useAppContext() {
+        // Context of the app under test.
+        val appContext = InstrumentationRegistry.getTargetContext()
+        assertEquals("com.aachartmodel.aainfographics", appContext.packageName)
+    }
+}

+ 21 - 0
app/src/main/AndroidManifest.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.aachartmodel.aainfographics">
+
+    <application
+            android:allowBackup="true"
+            android:icon="@mipmap/ic_launcher"
+            android:label="@string/app_name"
+            android:roundIcon="@mipmap/ic_launcher_round"
+            android:supportsRtl="true"
+            android:theme="@style/AppTheme">
+        <activity android:name=".MainActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>

+ 421 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAChartModel.kt

@@ -0,0 +1,421 @@
+package com.example.chartcorekotlin.AAChartConfiger
+
+enum class AAChartAnimationType(val value :String){
+    EaseInQuad     ("easeInQuad"),
+    EaseOutQuad    ("easeOutQuad"),
+    EaseInOutQuad  ("easeInOutQuad"),
+    EaseInCubic    ("easeInCubic"),
+    EaseOutCubic   ("easeOutCubic"),
+    EaseInOutCubic ("easeInOutCubic"),
+    EaseInQuart    ("easeInQuart"),
+    EaseOutQuart   ("easeOutQuart"),
+    EaseInOutQuart ("easeInOutQuart"),
+    EaseInQuint    ("easeInQuint"),
+    EaseOutQuint   ("easeOutQuint"),
+    EaseInOutQuint ("easeInOutQuint"),
+    EaseInSine     ("easeInSine"),
+    EaseOutSine    ("easeOutSine"),
+    EaseInOutSine  ("easeInOutSine"),
+    EaseInExpo     ("easeInExpo"),
+    EaseOutExpo    ("easeOutExpo"),
+    EaseInOutExpo  ("easeInOutExpo"),
+    EaseInCirc     ("easeInCirc"),
+    EaseOutCirc    ("easeOutCirc"),
+    EaseInOutCirc  ("easeInOutCirc"),
+    EaseOutBounce  ("easeOutBounce"),
+    EaseInBack     ("easeInBack"),
+    EaseOutBack    ("easeOutBack"),
+    EaseInOutBack  ("easeInOutBack"),
+    Elastic        ("elastic"),
+    SwingFromTo    ("swingFromTo"),
+    SwingFrom      ("swingFrom"),
+    SwingTo        ("swingTo"),
+    Bounce         ("bounce"),
+    BouncePast     ("bouncePast"),
+    EaseFromTo     ("easeFromTo"),
+    EaseFrom       ("easeFrom"),
+    EaseTo         ("easeTo"),
+}
+
+enum class AAChartType(val value: String) {
+    Column          ("column"),
+    Bar             ("bar"),
+    Area            ("area"),
+    AreaSpline      ("areaspline"),
+    Line            ("line"),
+    Spline          ("spline"),
+    Scatter         ("scatter"),
+    Pie             ("pie"),
+    Bubble          ("bubble"),
+    Pyramid         ("pyramid"),
+    Funnel          ("funnel"),
+    Columnrange     ("columnrange"),
+    Arearange       ("arearange"),
+    Areasplinerange ("areasplinerange"),
+    Boxplot         ("boxplot"),
+    Waterfall       ("waterfall"),
+}
+
+enum class AAChartAlighType(val value: String) {
+    Left   ("left"),
+    Center ("center"),
+    Right  ("right"),
+}
+
+enum class AAChartZoomType(val value: String) {
+    X  ("x"),
+    Y  ("y"),
+    XY ("xy"),
+}
+
+enum class AAChartStackingType(val value: String) {
+    False   (""),
+    Normal  ("normal"),
+    Percent ("percent"),
+}
+
+enum class AAChartSymbolType(val value: String) {
+    Circle         ("circle"),
+    Square         ("square"),
+    Diamond        ("diamond"),
+    Triangle       ("triangle"),
+    TriangleDown  ("triangle-down"),
+}
+
+enum class AAChartSymbolStyleType(val value: String) {
+    Normal       ("normal"),
+    InnerBlank   ("innerBlank"),
+    BorderBlank  ("borderBlank"),
+}
+
+enum class AAChartLegendlLayoutType(val value: String) {
+    Horizontal  ("horizontal"),
+    Vertical    ("vertical"),
+}
+
+enum class AAChartLegendAlignType(val value: String) {
+    Left     ("left"),
+    Center   ("center"),
+    Right    ("right"),
+}
+
+enum class AAChartLegendVerticalAlignType(val value: String) {
+    Top     ("top"),
+    Middle  ("middle"),
+    Bottom  ("bottom"),
+}
+
+enum class AAChartLineDashSyleType(val value: String) {
+    Solid           ("Solid"),
+    ShortDash       ("ShortDash"),
+    ShortDot        ("ShortDot"),
+    ShortDashDot    ("ShortDashDot"),
+    ShortDashDotDot ("ShortDashDotDot"),
+    Dot             ("Dot"),
+    Dash            ("Dash"),
+    LongDash        ("LongDash"),
+    DashDot         ("DashDot"),
+    LongDashDot     ("LongDashDot"),
+    LongDashDotDot  ("LongDashDotDot"),
+}
+
+class AAChartModel {
+
+    var animationType: String? = null          //动画类型
+    var animationDuration: Int? = null     //动画时间
+    var title: String? = null                 //标题内容
+    var subtitle: String? = null               //副标题内容
+    var chartType: String? = null              //图表类型
+    var stacking: String? = null               //堆积样式
+    var symbol: String? = null                 //折线曲线连接点的类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
+    var symbolStyle: String? = null
+    var zoomType: String? = null               //缩放类型 AAChartZoomTypeX表示可沿着 x 轴进行手势缩放
+    var pointHollow: Boolean? = null           //折线或者曲线的连接点是否为空心的
+    var inverted: Boolean? = null              //x 轴是否翻转(垂直)
+    var xAxisReversed: Boolean? = null         //x 轴翻转
+    var yAxisReversed: Boolean? = null         //y 轴翻转
+    var tooltipEnabled: Boolean? = null      //是否显示浮动提示框(默认显示)
+    var tooltipValueSuffix: String? = null  //浮动提示框单位后缀
+    var tooltipCrosshairs: Boolean? = null     //是否显示准星线(默认显示)
+    var gradientColorEnable: Boolean? = null   //是否要为渐变色
+    var polar: Boolean? = null                 //是否极化图形(变为雷达图)
+    var marginLeft: Float? = null
+    var marginRight: Float? = null
+    var dataLabelEnabled: Boolean? = null      //是否显示数据
+    var xAxisLabelsEnabled: Boolean? = null    //x轴是否显示数据
+    var categories: Array<String>? = null             //x轴是否显示数据
+    var xAxisGridLineWidth: Int? = null    //x轴网格线的宽度
+    var xAxisVisible: Boolean? = null        //x 轴是否显示
+    var yAxisVisible: Boolean? = null        //y 轴是否显示
+    var yAxisLabelsEnabled: Boolean? = null    //y轴是否显示数据
+    var yAxisTitle: String? = null             //y轴标题
+    var yAxisLineWidth: Float? = null       //y 轴轴线的宽度
+
+    var yAxisGridLineWidth: Int? = null    //y轴网格线的宽度
+    var colorsTheme: Array<Any>? = null            //图表主题颜色数组
+    var legendEnabled: Boolean? = null         //是否显示图例
+    var legendLayout: String? = null           //图例数据项的布局。布局类型: "horizontal" 或 "vertical" 即水平布局和垂直布局 默认是:horizontal.
+    var legendAlign: String? = null            //设定图例在图表区中的水平对齐方式,合法值有left,center 和 right。
+    var legendVerticalAlign: String? = null    //设定图例在图表区中的垂直对齐方式,合法值有 top,middle 和 bottom。垂直位置可以通过 y 选项做进一步设定。
+    var backgroundColor: String? = null        //图表背景色
+    var options3dEnable: Boolean? = null       //是否3D化图形(仅对条形图,柱状图有效)
+    var options3dAlphaInt: Int? = null
+    var options3dBetaInt: Int? = null
+    var options3dDepth: Int? = null        //3D图形深度
+    var borderRadius: Int? = null          //柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效)
+    var markerRadius: Int? = null          //折线连接点的半径长度
+    var series: Array<AASeriesElement>? = null
+    var titleColor: String? = null//标题颜色
+    var subTitleColor: String? = null//副标题颜色
+    var axisColor: String? = null//x 轴和 y 轴文字颜色
+
+
+
+    fun animationType(prop: AAChartAnimationType): AAChartModel {
+        this.animationType = prop.toString()
+        return this
+    }
+
+    fun animationDuration(prop: Int?): AAChartModel {
+        this.animationDuration = prop
+        return this
+    }
+
+    fun title(prop: String): AAChartModel {
+        this.title = prop
+        return this
+    }
+
+    fun subtitle(prop: String): AAChartModel {
+        this.subtitle = prop
+        return this
+    }
+
+    fun chartType(prop: AAChartType): AAChartModel {
+        this.chartType = prop.toString()
+        return this
+    }
+
+    fun stacking(prop: AAChartStackingType): AAChartModel {
+        this.stacking = prop.toString()
+        return this
+    }
+
+    fun symbol(prop: String): AAChartModel {
+        this.symbol = prop
+        return this
+    }
+
+    fun symbolStyle(prop: AAChartSymbolStyleType): AAChartModel {
+        this.symbolStyle = prop.toString()
+        return this
+    }
+
+    fun zoomType(prop: String): AAChartModel {
+        this.zoomType = prop
+        return this
+    }
+
+    fun pointHollow(prop: Boolean?): AAChartModel {
+        this.pointHollow = prop
+        return this
+    }
+
+    fun inverted(prop: Boolean?): AAChartModel {
+        this.inverted = prop
+        return this
+    }
+
+    fun xAxisReversed(prop: Boolean?): AAChartModel {
+        this.xAxisReversed = prop
+        return this
+    }
+
+    fun yAxisReversed(prop: Boolean?): AAChartModel {
+        this.yAxisReversed = prop
+        return this
+    }
+
+    fun tooltipEnabled(prop: Boolean?): AAChartModel {
+        this.tooltipEnabled = prop
+        return this
+    }
+
+    fun tooltipCrosshairs(prop: Boolean?): AAChartModel {
+        this.tooltipCrosshairs = prop
+        return this
+    }
+
+    fun gradientColorEnable(prop: Boolean?): AAChartModel {
+        this.gradientColorEnable = prop
+        return this
+    }
+
+    fun polar(prop: Boolean?): AAChartModel {
+        this.polar = prop
+        return this
+    }
+
+    fun dataLabelEnabled(prop: Boolean?): AAChartModel {
+        this.dataLabelEnabled = prop
+        return this
+    }
+
+    fun xAxisLabelsEnabled(prop: Boolean?): AAChartModel {
+        this.xAxisLabelsEnabled = prop
+        return this
+    }
+
+    fun categories(prop: Array<String>): AAChartModel {
+        this.categories = prop
+        return this
+    }
+
+    fun xAxisGridLineWidth(prop: Int?): AAChartModel {
+        this.xAxisGridLineWidth = prop
+        return this
+    }
+
+    fun yAxisGridLineWidth(prop: Int?): AAChartModel {
+        this.yAxisGridLineWidth = prop
+        return this
+    }
+
+    fun yAxisLabelsEnabled(prop: Boolean?): AAChartModel {
+        this.yAxisLabelsEnabled = prop
+        return this
+    }
+
+    fun yAxisTitle(prop: String): AAChartModel {
+        this.yAxisTitle = prop
+        return this
+    }
+
+    fun colorsTheme(prop: Array<Any>): AAChartModel {
+        this.colorsTheme = prop
+        return this
+    }
+
+    fun legendEnabled(prop: Boolean?): AAChartModel {
+        this.legendEnabled = prop
+        return this
+    }
+
+    fun legendLayout(prop: String): AAChartModel {
+        this.legendLayout = prop
+
+        return this
+    }
+
+    fun legendAlign(prop: String): AAChartModel {
+        this.legendAlign = prop
+        return this
+    }
+
+    fun legendVerticalAlign(prop: AAChartLegendVerticalAlignType): AAChartModel {
+        this.legendVerticalAlign = prop.toString()
+        return this
+    }
+
+    fun backgroundColor(prop: String): AAChartModel {
+        this.backgroundColor = prop
+        return this
+    }
+
+    fun options3dEnable(prop: Boolean?): AAChartModel {
+        this.options3dEnable = prop
+        return this
+    }
+
+    fun options3dAlphaInt(prop: Int?): AAChartModel {
+        this.options3dAlphaInt = prop
+        return this
+    }
+
+    fun options3dBetaInt(prop: Int?): AAChartModel {
+        this.options3dBetaInt = prop
+        return this
+    }
+
+    fun options3dDepth(prop: Int?): AAChartModel {
+        this.options3dDepth = prop
+        return this
+    }
+
+    fun borderRadius(prop: Int?): AAChartModel {
+        this.borderRadius = prop
+        return this
+    }
+
+    fun markerRadius(prop: Int?): AAChartModel {
+        this.markerRadius = prop
+        return this
+    }
+
+    fun series(prop: Array<AASeriesElement>): AAChartModel {
+        this.series = prop
+        return this
+    }
+
+    // 构造函数(亦即是初始化函数)
+    init {
+
+        //        this.animationType = AAChartAnimationType.EaseInBack;
+        //        this.animationDuration = 800;//以毫秒为单位
+        //        this.chartType = AAChartType.Column;
+        //        this.inverted = false;
+        //        this.stacking = AAChartStackingType.False;
+        //        //this.symbol = AAChartSymbolType.Square.rawValue//默认的折线连接点类型
+        //        this.xAxisReversed = false;
+        //        this.yAxisReversed = false;
+        //        this.zoomType = AAChartZoomType.X;
+        //        this.pointHollow = false;//默认折线或者曲线的连接点不为空
+        //        this.colorsTheme = new String[]{"#b5282a","#e7a701","#50c18d","#fd4800","#f1c6c5"};
+        //        this.gradientColorEnable = false;
+        //        this.polar = false;
+        //        this.dataLabelEnabled = true;
+        //        this.options3dEnable = false;
+        //        this.crosshairs = true;
+        //        this.xAxisLabelsEnabled = true;
+        //        this.xAxisGridLineWidth = 0;
+        //        this.yAxisLabelsEnabled = true;
+        //        this.yAxisGridLineWidth = 1;
+        //        this.legendEnabled = true;
+        //        this.legendLayout = AAchartLegendlLayoutType.Horizontal;
+        //        this.legendAlign = AAChartLegendAlignType.Center;
+        //        this.legendVerticalAlign = AAChartLegendVerticalAlignType.Bottom;
+        //        this.borderRadius = 0;//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效,设置为1000时,柱形图或者条形图头部为楔形)
+        //        this.markerRadius = 5;//折线连接点的半径长度,设置默认值为0,这样就相当于不显示了
+
+        this.animationType = AAChartAnimationType.EaseInBack.toString()
+        this.animationDuration = 800//以毫秒为单位
+        this.pointHollow = false
+        this.inverted = false
+        this.stacking = AAChartStackingType.False.toString()
+        this.xAxisReversed = false
+        this.yAxisReversed = false
+        this.zoomType = "x"
+        //        this.colorsTheme = new String[]{"#b5282a","#e7a701","#50c18d","#fd4800","#f1c6c5"};
+        this.colorsTheme = arrayOf<Any>("#fe117c", "#ffc069", "#06caf4", "#7dffc0")//默认的颜色数组(必须要添加默认数组,否则就会出错)
+
+        this.tooltipCrosshairs = true
+
+        this.gradientColorEnable = false
+        this.polar = false
+        this.options3dEnable = false
+        this.xAxisLabelsEnabled = true
+        this.xAxisGridLineWidth = 0
+        this.yAxisLabelsEnabled = true
+        this.yAxisGridLineWidth = 1
+        this.legendEnabled = true
+        this.legendLayout = "horizontal"
+        this.legendAlign = "center"
+        this.legendVerticalAlign = "bottom"
+        this.backgroundColor = "#ffffff"
+        this.borderRadius = 0//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效,设置为1000时,柱形图或者条形图头部为楔形)
+        this.markerRadius = 6//折线连接点的半径长度,如果值设置为0,这样就相当于不显示了
+
+    }
+}
+
+

+ 135 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAChartView.kt

@@ -0,0 +1,135 @@
+/**
+ * Copyright (C), 2015-2019, 飞牛集达有限公司
+ * FileName: AAChartView
+ * Author: ios-fn
+ * Date: 2019-05-15 11:20
+ * Description: Chart View
+ * History:
+ */
+package com.aachartmodel.aachartcore_kotlin.AAChartCreator;
+
+//
+//  AAChartModel.java
+//  ChartCore-Slim
+//
+//  Created by AnAn on 2017/9/8..
+//  Copyright © 2018年 An An. All rights reserved.
+//*************** ...... SOURCE CODE ...... ***************
+//***...................................................***
+//*** https://github.com/AAChartModel/ChartCore         ***
+//*** https://github.com/AAChartModel/ChartCore-Slim    ***
+//***...................................................***
+//*************** ...... SOURCE CODE ...... ***************
+
+
+/*
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/ChartCore-Slim/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+
+
+import android.content.Context
+import android.util.AttributeSet
+import android.webkit.WebView
+import android.webkit.WebViewClient
+import com.example.chartcorekotlin.AAChartConfiger.AAChartModel
+import com.example.chartcorekotlin.AAChartConfiger.AASeriesElement
+
+import com.google.gson.Gson
+
+import java.util.HashMap
+
+
+/**
+ * Created by AnAn on 2017/9/8.
+ */
+
+class AAChartView : WebView {
+
+    var contentWidth: Float? = null
+    var contentHeight: Float? = null
+    var chartSeriesHidden: Boolean? = null
+    var testTheAutoGenerateGetMethod: String? = null
+
+    private var optionsJson: String? = null
+
+    constructor(context: Context) : super(context) {
+        sharedConstructor()
+
+
+    }
+
+    constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
+        sharedConstructor()
+    }
+
+    constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+        sharedConstructor()
+    }
+
+    private fun sharedConstructor() {
+        // Do some initialize work.
+        this.contentWidth = 320f
+        this.contentHeight = 350f
+        //        //设置WebView支持JavaScript(这一句是十分关键的一句)
+        this.settings.javaScriptEnabled = true
+        //        this.loadUrl("file:///android_asset/AAChartView.html");//神奇了,这个方法写在aa_drawChartWithChartModel方法里面就不行,难道是因为不能在还未加载成功的时候就直接调用 JS 方法?(跟 OC 一样)必须在加载完成后的代理里面调用 JS 方法
+
+    }
+
+
+    fun aa_drawChartWithChartModel(chartModel: AAChartModel) {
+        this.loadUrl("file:///android_asset/AAChartView.html")//神奇了,这个方法写在aa_drawChartWithChartModel方法里面就不行,难道是因为不能在还未加载成功的时候就直接调用 JS 方法?(跟 OC 一样)必须在加载完成后的代理里面调用 JS 方法
+
+        this.webViewClient = object : WebViewClient() {
+            override fun onPageFinished(view: WebView, url: String) {
+                //                System.out.println("图表加载完成!!!!!!!! ");
+                configureChartOptionsAndDrawChart(chartModel)
+            }
+        }
+    }
+
+    fun aa_onlyRefreshTheChartDataWithChartModelSeriesArray(seriesElementsArr: Array<AASeriesElement>) {
+        // 将对象编译成json
+        val gson = Gson()
+        val seriesArr = gson.toJson(seriesElementsArr)
+        this.loadUrl("javascript:onlyRefreshTheChartDataWithSeries('$seriesArr',')")
+    }
+
+    fun aa_refreshChartWithChartModel(chartModel: AAChartModel) {
+        // 将对象编译成json
+        val gson = Gson()
+        val newOptions = gson.toJson(chartModel)
+        this.loadUrl("javascript:loadTheHighChartView('$newOptions','$contentWidth','$contentHeight')")
+    }
+
+    private fun configureChartOptionsAndDrawChart(chartModel: AAChartModel) {
+        // 将对象编译成json
+        val gson = Gson()
+        optionsJson = gson.toJson(chartModel)
+        //        System.out.println("🍎获得了最后的字符串 Options "+optionsJson);
+        //
+        //
+        //        HashMap myJson = AAOptionsConstructor.configureChartOptions(chartModel);
+        //        System.out.println("🔥🔥🔥🔥🔥获得了最后的字符串 Options "+optionsJson);
+
+        //        this.loadUrl("javascript:loadTheHighChartView('" + optionsJson + "','" + contentWidth + "','" + contentHeight + "',)");
+        this.loadUrl("javascript:loadTheHighChartView('$optionsJson','420','580')")
+    }
+
+
+}

+ 66 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAColor.kt

@@ -0,0 +1,66 @@
+package com.example.chartcorekotlin.AAChartConfiger
+
+
+object AAColor {
+
+    fun blackColor(): String {
+        return "black"
+    }
+
+    fun darkGrayColor(): String {
+        return "darkGray"
+    }
+
+    fun lightGrayColor(): String {
+        return "lightGray"
+    }
+
+    fun whiteColor(): String {
+        return "white"
+    }
+
+    fun grayColor(): String {
+        return "gray"
+    }
+
+    fun redColor(): String {
+        return "red"
+    }
+
+    fun greenColor(): String {
+        return "green"
+    }
+
+    fun blueColor(): String {
+        return "blue"
+    }
+
+    fun cyanColor(): String {
+        return "cyan"
+    }
+
+    fun yellowColor(): String {
+        return "yellow"
+    }
+
+    fun magentaColor(): String {
+        return "magenta"
+    }
+
+    fun orangeColor(): String {
+        return "orange"
+    }
+
+    fun purpleColor(): String {
+        return "purple"
+    }
+
+    fun brownColor(): String {
+        return "brown"
+    }
+
+    fun clearColor(): String {
+        return "clear"
+    }
+
+}

+ 118 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAGradientColor.kt

@@ -0,0 +1,118 @@
+package com.example.chartcorekotlin.AAChartConfiger
+
+import java.util.HashMap
+
+
+object AAGradientColor {
+
+
+    fun oceanBlueColor(): HashMap<String, Any> {
+        return configureGradientColor("#2E3192", "#1BFFFF")
+    }
+
+    fun sanguineColor(): HashMap<String, Any> {
+        return configureGradientColor("#D4145A", "#FBB03B")
+    }
+
+    fun lusciousLimeColor(): HashMap<String, Any> {
+        return configureGradientColor("#009245", "#FCEE21")
+    }
+
+    fun purpleLakeColor(): HashMap<String, Any> {
+        return configureGradientColor("#662D8C", "#ED1E79")
+    }
+
+    fun freshPapayaColor(): HashMap<String, Any> {
+        return configureGradientColor("#ED1C24", "#FCEE21")
+    }
+
+    fun ultramarineColor(): HashMap<String, Any> {
+        return configureGradientColor("#00A8C5", "#FFFF7E")
+    }
+
+    fun pinkSugarColor(): HashMap<String, Any> {
+        return configureGradientColor("#D74177", "#FFE98A")
+    }
+
+    fun lemonDrizzleColor(): HashMap<String, Any> {
+        return configureGradientColor("#FB872B", "#D9E021")
+    }
+
+    fun victoriaPurpleColor(): HashMap<String, Any> {
+        return configureGradientColor("#312A6C", "#852D91")
+    }
+
+    fun springGreensColor(): HashMap<String, Any> {
+        return configureGradientColor("#009E00", "#FFFF96")
+    }
+
+    fun mysticMauveColor(): HashMap<String, Any> {
+        return configureGradientColor("#B066FE", "#63E2FF")
+    }
+
+    fun reflexSilverColor(): HashMap<String, Any> {
+        return configureGradientColor("#808080", "#E6E6E6")
+    }
+
+    fun neonGlowColor(): HashMap<String, Any> {
+        return configureGradientColor("#00FFA1", "#00FFFF")
+    }
+
+    fun berrySmoothieColor(): HashMap<String, Any> {
+        return configureGradientColor("#8E78FF", "#FC7D7B")
+    }
+
+    fun newLeafColor(): HashMap<String, Any> {
+        return configureGradientColor("#00537E", "#3AA17E")
+    }
+
+    fun cottonCandyColor(): HashMap<String, Any> {
+        return configureGradientColor("#FCA5F1", "#B5FFFF")
+    }
+
+    fun pixieDustColor(): HashMap<String, Any> {
+        return configureGradientColor("#D585FF", "#00FFEE")
+    }
+
+    fun fizzyPeachColor(): HashMap<String, Any> {
+        return configureGradientColor("#F24645", "#EBC08D")
+    }
+
+    fun sweetDreamColor(): HashMap<String, Any> {
+        return configureGradientColor("#3A3897", "#A3A1FF")
+    }
+
+    fun firebrickColor(): HashMap<String, Any> {
+        return configureGradientColor("#45145A", "#FF5300")
+    }
+
+    fun wroughtIronColor(): HashMap<String, Any> {
+        return configureGradientColor("#333333", "#5A5454")
+    }
+
+    fun deepSeaColor(): HashMap<String, Any> {
+        return configureGradientColor("#4F00BC", "#29ABE2")
+    }
+
+    fun coastalBreezeColor(): HashMap<String, Any> {
+        return configureGradientColor("#00B7FF", "#FFFFC7")
+    }
+
+    fun eveningDelightColor(): HashMap<String, Any> {
+        return configureGradientColor("#93278F", "#00A99D")
+    }
+
+    private fun configureGradientColor(startColor: String,
+                                       endColor: String): HashMap<String, Any> {
+        val linearGradientColorMap = HashMap<String, Int>()
+        linearGradientColorMap["x1"] = 0
+        linearGradientColorMap["y1"] = 1
+        linearGradientColorMap["x2"] = 0
+        linearGradientColorMap["y2"] = 0
+        val stopsArr = arrayOf<Any>(arrayOf(0, startColor), arrayOf(1, endColor))
+        val gradientColorMap = HashMap<String, Any>()
+        gradientColorMap["linearGradient"] = linearGradientColorMap
+        gradientColorMap["stops"] = stopsArr
+        return gradientColorMap
+    }
+}

+ 204 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AAOptionsConstructor.kt

@@ -0,0 +1,204 @@
+package com.example.chartcorekotlin.AAChartConfiger
+
+import java.util.HashMap
+
+//
+//  AAChartModel.java
+//  ChartCore-Slim
+//
+//  Created by AnAn on 2018/12/08.
+//  Copyright © 2018年 An An. All rights reserved.
+//*************** ...... SOURCE CODE ...... ***************
+//***...................................................***
+//*** https://github.com/AAChartModel/ChartCore         ***
+//*** https://github.com/AAChartModel/ChartCore-Slim    ***
+//***...................................................***
+//*************** ...... SOURCE CODE ...... ***************
+
+
+/*
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/ChartCore-Slim/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : https://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+
+
+object AAOptionsConstructor {
+    fun configureChartOptions(aaChartModel: AAChartModel): HashMap<String, Any?> {
+        val aaChart = HashMap<String, Any?>()
+        aaChart["type"] = aaChartModel.chartType//图表类型
+        aaChart["inverted"] = aaChartModel.inverted//设置是否反转坐标轴,使X轴垂直,Y轴水平。 如果值为 true,则 x 轴默认是 倒置 的。 如果图表中出现条形图系列,则会自动反转
+        aaChart["backgroundColor"] = aaChartModel.backgroundColor//图表背景色
+        aaChart["animation"] = true//是否开启图表渲染动画
+        aaChart["pinchType"] = aaChartModel.zoomType//设置手势缩放方向
+        aaChart["panning"] = true//设置手势缩放后是否可平移
+        aaChart["polar"] = aaChartModel.polar//是否极化图表(开启极坐标模式)
+        aaChart["marginLeft"] = aaChartModel.marginLeft/* 图表左边距 */
+        aaChart["marginRight"] = aaChartModel.marginRight//图表右边距
+
+        val aaTitle = HashMap<String, Any?>()
+        aaTitle["text"] = aaChartModel.title//标题文本内容
+        val aaTitleStyle = HashMap<String, Any?>()
+        aaTitleStyle["color"] = aaChartModel.titleColor//标题文字颜色
+        aaTitleStyle["fontSize"] = "12px"//标题文字大小
+        aaTitle["style"] = aaTitleStyle
+
+        val aaSubtitle = HashMap<String, Any?>()
+        aaSubtitle["text"] = aaChartModel.subtitle//富标题文本内容
+        val aaSubtitleStyle = HashMap<String, Any?>()
+        aaSubtitleStyle["color"] = aaChartModel.subTitleColor//副标题文字颜色
+        aaSubtitleStyle["fontSize"] = "9px"//副标题文字大小
+        aaSubtitle["style"] = aaSubtitleStyle
+
+        val aaTooltip = HashMap<String, Any?>()
+        aaTooltip["enabled"] = aaChartModel.tooltipEnabled//是否开启浮动提示框 tooltip
+        aaTooltip["valueSuffix"] = aaChartModel.tooltipValueSuffix// 浮动提示框数字的单位后缀
+        aaTooltip["shared"] = true//多组 series 数据时,是否共享浮动提示框,默认共享
+        aaTooltip["crosshairs"] = aaChartModel.tooltipCrosshairs
+
+        val aaSeries = HashMap<String, Any?>()
+        aaSeries["stacking"] = aaChartModel.stacking//图表堆叠样式类型
+        val aaAnimation = HashMap<String, Any?>()
+        aaAnimation["duration"] = aaChartModel.animationDuration//图表渲染的动画时间
+        aaAnimation["easing"] = aaChartModel.animationType//图表渲染的动画类型
+        aaSeries["animation"] = aaAnimation
+
+        var aaPlotOptions = HashMap<String, Any?>()
+        aaPlotOptions["series"] = aaSeries
+
+        //数据点标记的相关配置
+        aaPlotOptions = configureAAPlotOptionsMarkerStyle(aaChartModel, aaSeries, aaPlotOptions)
+        //配置 aaPlotOptions 的 dataLabels 等相关内容
+        aaPlotOptions = configureAAPlotOptionsDataLabels(aaPlotOptions, aaChartModel)
+
+        val aaLegend = HashMap<String, Any?>()
+        aaLegend["enabled"] = aaChartModel.legendEnabled//是否显示图表的图例,默认显示
+        aaLegend["layout"] = aaChartModel.legendLayout //图例数据项的布局。布局类型: "horizontal" 或 "vertical" 即水平布局和垂直布局 默认是:horizontal.
+        aaLegend["align"] = aaChartModel.legendAlign//设定图例在图表区中的水平对齐方式,合法值有left,center 和 right。
+        aaLegend["verticalAlign"] = aaChartModel.legendVerticalAlign//设定图例在图表区中的垂直对齐方式,合法值有 top,middle 和 bottom。垂直位置可以通过 y 选项做进一步设定。
+        aaLegend["borderWidth"] = 0
+        val aaLegendItemSyle = HashMap<String, Any?>()
+        aaLegend["color"] = aaChartModel.axisColor//图例的文字颜色,默认图例的文字颜色和X轴文字颜色一样
+        aaLegend["itemStyle"] = aaLegendItemSyle
+
+
+        val aaOptions = HashMap<String, Any?>()
+        aaOptions["chart"] = aaChart
+        aaOptions["title"] = aaTitle
+        aaOptions["subtitle"] = aaSubtitle
+        aaOptions["tooltip"] = aaTooltip
+        aaOptions["legend"] = aaLegend
+        aaOptions["plotOptions"] = aaPlotOptions
+        aaOptions["colors"] = aaChartModel.colorsTheme//图表的主体颜色数组
+        aaOptions["series"] = aaChartModel.series//图表的数据列数组
+        aaOptions["axisColor"] = aaChartModel.axisColor//图表的 x 轴颜色
+
+        configureAxisContentAndStyle(aaOptions, aaChartModel)
+
+        return aaOptions
+    }
+
+    private fun configureAAPlotOptionsMarkerStyle(aaChartModel: AAChartModel,
+                                                  aaSeries: HashMap<String, Any?>,
+                                                  aaPlotOptions: HashMap<String, Any?>
+    ): HashMap<String, Any?> {
+        val chartType = aaChartModel.chartType
+        //数据点标记相关配置,只有线性图(折线图、曲线图、折线区域填充图、曲线区域填充图,散点图)才有数据点标记
+        if (chartType === AAChartType.Area.toString()
+            || chartType === AAChartType.AreaSpline.toString()
+            || chartType === AAChartType.Line.toString()
+            || chartType === AAChartType.Spline.toString()
+            || chartType === AAChartType.Scatter.toString()) {
+            val aaMarker = HashMap<String, Any?>()
+            aaMarker["radius"] = aaChartModel.markerRadius//曲线连接点半径,默认是4
+            aaMarker["symbol"] = aaChartModel.symbol//曲线连接点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
+            //设置曲线连接点风格样式
+            if (aaChartModel.symbolStyle === AAChartSymbolStyleType.InnerBlank.toString()) {
+                aaMarker["fillColor"] = "#FFFFFF"//点的填充色(用来设置折线连接点的填充色)
+                aaMarker["lineWidth"] = 2//外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
+                aaMarker["lineColor"] = ""//外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色。)
+            } else if (aaChartModel.symbolStyle === AAChartSymbolStyleType.BorderBlank.toString()) {
+                aaMarker["lineWidth"] = 2//外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
+                aaMarker["lineColor"] = aaChartModel.backgroundColor//外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色。)
+            }
+            aaSeries["marker"] = aaMarker
+            aaPlotOptions["series"] = aaSeries
+        }
+        return aaPlotOptions
+    }
+
+
+    private fun configureAAPlotOptionsDataLabels(aaPlotOptions: HashMap<String, Any?>,
+                                                 aaChartModel: AAChartModel): HashMap<String, Any?> {
+
+        val chartType = aaChartModel.chartType!!
+        val aaDataLabels = HashMap<String, Any?>()
+        aaDataLabels["enabled"] = aaChartModel.xAxisLabelsEnabled
+        val aaSomeTypeChart = HashMap<String, Any?>()
+
+        if (chartType === AAChartType.Column.toString() || chartType === AAChartType.Bar.toString()) {
+            aaSomeTypeChart["borderWidth"] = 0
+            aaSomeTypeChart["borderRadius"] = aaChartModel.borderRadius
+            aaSomeTypeChart["dataLabels"] = aaDataLabels
+            if (aaChartModel.polar == true) {
+                aaSomeTypeChart["pointPadding"] = 0
+                aaSomeTypeChart["groupPadding"] = 0.005
+            }
+        } else if (chartType === AAChartType.Pie.toString()) {
+            aaSomeTypeChart["allowPointSelect"] = true
+            aaSomeTypeChart["cursor"] = "pointer"
+            aaSomeTypeChart["showInLegend"] = aaChartModel.legendEnabled
+            aaDataLabels["format"] = "{point.name}"
+            aaSomeTypeChart["dataLabels"] = aaDataLabels
+        } else {
+            aaSomeTypeChart["dataLabels"] = aaDataLabels
+        }
+        aaPlotOptions[chartType] = aaSomeTypeChart
+
+        return aaPlotOptions
+    }
+
+    private fun configureAxisContentAndStyle(aaOptions: HashMap<String, Any?>,
+                                             aaChartModel: AAChartModel) {
+
+        if (aaChartModel.chartType !== AAChartType.Pie.toString()
+            && aaChartModel.chartType !== AAChartType.Pyramid.toString()
+            && aaChartModel.chartType !== AAChartType.Funnel.toString()) {
+            val aaAxisLabel = HashMap<String, Any?>()
+            aaAxisLabel["enabled"] = aaChartModel.xAxisLabelsEnabled
+
+            val aaXAxis = HashMap<String, Any?>()
+            aaXAxis["label"] = aaAxisLabel
+            aaXAxis["reversed"] = aaChartModel.xAxisReversed
+            aaXAxis["gridLineWidth"] = aaChartModel.xAxisGridLineWidth
+            aaXAxis["categories"] = aaChartModel.categories
+            aaXAxis["visible"] = aaChartModel.xAxisVisible
+
+            val aaYAxis = HashMap<String, Any?>()
+            aaYAxis["label"] = aaAxisLabel
+            aaYAxis["reversed"] = aaChartModel.yAxisReversed
+            aaYAxis["gridLineWidth"] = aaChartModel.yAxisGridLineWidth
+            aaYAxis["title"] = aaChartModel.yAxisTitle
+            aaYAxis["lineWidth"] = aaChartModel.yAxisLineWidth
+            aaYAxis["visible"] = aaChartModel.yAxisVisible
+
+            aaOptions["xAxis"] = aaXAxis
+            aaOptions["yAxis"] = aaYAxis
+        }
+    }
+
+
+}

+ 99 - 0
app/src/main/java/com/aachartmodel/aainfographics/AAChartConfiger/AASeriesElement.kt

@@ -0,0 +1,99 @@
+package com.example.chartcorekotlin.AAChartConfiger
+
+
+import java.util.Dictionary
+
+/**
+ * Created by anan on 2018/4/16.
+ */
+
+class AASeriesElement {
+
+    private var type: String? = null
+    private var name: String? = null
+    private var data: Array<Any>? = null
+    private var lineWidth: Float? = null//折线图、曲线图、直方折线图、折线填充图、曲线填充图、直方折线填充图的线条宽度
+    private var color: Any? = null
+    private var fillOpacity: Float? = null//折线填充图、曲线填充图、直方折线填充图等填充图类型的填充颜色透明度
+    private var threshold: Float? = null//The threshold, also called zero level or base level. For line type series this is only used in conjunction with negativeColor. default:0.
+    private var negativeColor: String? = null// The color for the parts of the graph or points that are below the threshold
+    private var dashStyle: String? = null
+    private var dataLabels: Dictionary<*, *>? = null
+    private var marker: Dictionary<*, *>? = null
+    private var step: Any? = null
+    private var colorByPoint: Boolean? = null
+    private var zIndex: Int? = null
+
+
+    fun type(prop: AAChartType): AASeriesElement {
+        this.type = prop.toString()
+        return this
+    }
+
+    fun name(prop: String): AASeriesElement {
+        this.name = prop
+        return this
+    }
+
+    fun data(prop: Array<Any>): AASeriesElement {
+        this.data = prop
+        return this
+    }
+
+    fun lineWidth(prop: Float?): AASeriesElement {
+        this.lineWidth = prop
+        return this
+    }
+
+    fun color(prop: Any): AASeriesElement {
+        this.color = prop
+        return this
+    }
+
+    fun fillOpacity(prop: Float?): AASeriesElement {
+        this.fillOpacity = prop
+        return this
+    }
+
+    fun threshold(prop: Float?): AASeriesElement {
+        this.threshold = prop
+        return this
+    }
+
+    fun negativeColor(prop: String): AASeriesElement {
+        this.negativeColor = prop
+        return this
+    }
+
+    fun dashStyle(prop: AAChartLineDashSyleType): AASeriesElement {
+        this.dashStyle = prop.toString()
+        return this
+    }
+
+    fun dataLabels(prop: Dictionary<*, *>): AASeriesElement {
+        this.dataLabels = prop
+        return this
+    }
+
+    fun marker(prop: Dictionary<*, *>): AASeriesElement {
+        this.marker = prop
+        return this
+    }
+
+    fun step(prop: Any): AASeriesElement {
+        this.step = prop
+        return this
+    }
+
+    fun colorByPoint(prop: Boolean?): AASeriesElement {
+        this.colorByPoint = prop
+        return this
+    }
+
+    fun zIndex(prop: Int?): AASeriesElement {
+        this.zIndex = prop
+        return this
+    }
+
+
+}

+ 132 - 0
app/src/main/java/com/aachartmodel/aainfographics/CustomStyleChartComposer.kt

@@ -0,0 +1,132 @@
+package com.example.chartcorekotlin
+
+import com.example.chartcorekotlin.AAChartConfiger.*
+
+class CustomStyleChartComposer  {
+
+     fun configureColorfulChart(): AAChartModel {
+        val colorsNameArr = arrayOf(
+            "red",
+            "orange",
+            "yellow",
+            "green",
+            "cyan",
+            "blue",
+            "purple",
+            "gray",
+            "darkGray",
+            "lightGray",
+            "magenta",
+            "brown",
+            "black"
+        )
+
+        val colorsArr = arrayOf<Any>(
+            AAColor.redColor(),
+            AAColor.orangeColor(),
+            AAColor.yellowColor(),
+            AAColor.greenColor(),
+            AAColor.cyanColor(),
+            AAColor.blueColor(),
+            AAColor.purpleColor(),
+            AAColor.grayColor(),
+            AAColor.darkGrayColor(),
+            AAColor.lightGrayColor(),
+            AAColor.magentaColor(),
+            AAColor.brownColor(),
+            AAColor.blackColor()
+        )
+
+       return AAChartModel()
+            .chartType(AAChartType.Bar)
+            .animationType(AAChartAnimationType.Bounce)
+            .title("Colorful Chart")
+            .subtitle("use AAColor to get color string")
+            .dataLabelEnabled(false)
+            .categories(colorsNameArr)
+            .colorsTheme(colorsArr)
+            .stacking(AAChartStackingType.Percent)
+            .series(
+                arrayOf(
+                    AASeriesElement()
+                        .name("Tokyo")
+                        .data(arrayOf(149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4))
+                        .colorByPoint(true)
+                )
+            )
+
+    }
+
+
+    internal fun configureColorfulGradientColorChart(): AAChartModel {
+
+        val gradientColorNamesArr = arrayOf(
+            "oceanBlue",
+            "sanguine",
+            "lusciousLime",
+            "purpleLake",
+            "freshPapaya",
+            "ultramarine",
+            "pinkSugar",
+            "lemonDrizzle",
+            "victoriaPurple",
+            "springGreens",
+            "mysticMauve",
+            "reflexSilver",
+            "newLeaf",
+            "cottonCandy",
+            "pixieDust",
+            "fizzyPeach",
+            "sweetDream",
+            "firebrick",
+            "wroughtIron",
+            "deepSea",
+            "coastalBreeze",
+            "eveningDelight"
+        )
+
+        val gradientColorArr = arrayOf<Any>(
+            AAGradientColor.oceanBlueColor(),
+            AAGradientColor.sanguineColor(),
+            AAGradientColor.lusciousLimeColor(),
+            AAGradientColor.purpleLakeColor(),
+            AAGradientColor.freshPapayaColor(),
+            AAGradientColor.ultramarineColor(),
+            AAGradientColor.pinkSugarColor(),
+            AAGradientColor.lemonDrizzleColor(),
+            AAGradientColor.victoriaPurpleColor(),
+            AAGradientColor.springGreensColor(),
+            AAGradientColor.mysticMauveColor(),
+            AAGradientColor.reflexSilverColor(),
+            AAGradientColor.newLeafColor(),
+            AAGradientColor.cottonCandyColor(),
+            AAGradientColor.pixieDustColor(),
+            AAGradientColor.fizzyPeachColor(),
+            AAGradientColor.sweetDreamColor(),
+            AAGradientColor.firebrickColor(),
+            AAGradientColor.wroughtIronColor(),
+            AAGradientColor.deepSeaColor(),
+            AAGradientColor.coastalBreezeColor(),
+            AAGradientColor.eveningDelightColor()
+        )
+
+       return AAChartModel()
+            .chartType(AAChartType.Bar)
+            .title("Colorful Column Chart")
+            .subtitle("single data array colorful column chart")
+            .categories(gradientColorNamesArr)
+            .colorsTheme(gradientColorArr)
+            .yAxisTitle("gradient color")
+            .stacking(AAChartStackingType.Percent)
+            .series(
+                arrayOf(
+                    AASeriesElement()
+                        .name("Tokyo")
+                        .data(arrayOf(149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4))
+                        .colorByPoint(true)
+                )
+            )
+
+    }
+
+}

+ 42 - 0
app/src/main/java/com/aachartmodel/aainfographics/MainActivity.kt

@@ -0,0 +1,42 @@
+package com.aachartmodel.aainfographics
+
+import android.support.v7.app.AppCompatActivity
+import android.os.Bundle
+import com.example.chartcorekotlin.AAChartConfiger.*
+import com.google.gson.Gson
+
+class MainActivity : AppCompatActivity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_main)
+
+        val aaChartModel = AAChartModel()
+            .chartType(AAChartType.Line)
+            .title("title")
+            .subtitle("this is the subtitle of chart")
+            .backgroundColor("#ffffff")
+            .dataLabelEnabled(true)
+            .yAxisGridLineWidth(0)
+            .legendVerticalAlign(AAChartLegendVerticalAlignType.Bottom)
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Tokyo")
+                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
+                AASeriesElement()
+                    .name("New York")
+                    .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.10, 14.1, 8.6, 2.5)),
+                AASeriesElement()
+                    .name("Berlin")
+                    .data(arrayOf(0.9, 0.6, 3.5, 8.40, 13.5, 17.0, 18.6, 17.9, 14.30, 9.0, 3.90, 1.0)),
+                AASeriesElement()
+                    .name("London")
+                    .data(arrayOf(3.9, 4.2, 5.7, 8.50, 11.9, 15.2, 17.0, 16.6, 14.20, 10.3, 6.6, 4.8))
+            )
+            )
+
+        val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+
+        print(Gson().toJson(aaOptions))
+    }
+}

+ 158 - 0
app/src/main/java/com/aachartmodel/aainfographics/MixedChartComposer.kt

@@ -0,0 +1,158 @@
+package com.example.chartcorekotlin
+
+import com.example.chartcorekotlin.AAChartConfiger.*
+
+object MixedChartComposer {
+
+
+    fun configureColumnrangeMixedLineChartModel(): AAChartModel {
+        return AAChartModel()
+            .colorsTheme(arrayOf("#1e90ff", "#EA007B", "#49C1B6", "#FDC20A", "#F78320", "#068E81"))//主题颜色数组
+            .title("")//图形标题
+            .subtitle("")//图形副标题
+            .chartType(AAChartType.Line)
+            .dataLabelEnabled(false)
+            .symbolStyle(AAChartSymbolStyleType.BorderBlank)
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Temperature")
+                    .type(AAChartType.Columnrange)  //COLUMN_RANGE
+                    .data(arrayOf(
+                        arrayOf(-9.7,  9.4),
+                        arrayOf(-8.7,  6.5),
+                        arrayOf(-3.5,  9.4),
+                        arrayOf(-1.4, 19.9),
+                        arrayOf(0.0,  22.6),
+                        arrayOf(2.9,  29.5),
+                        arrayOf(9.2,  30.7),
+                        arrayOf(7.3,  26.5),
+                        arrayOf(4.4,  18.0),
+                        arrayOf(-3.1, 11.4),
+                        arrayOf(-5.2, 10.4),
+                        arrayOf(-9.9, 16.8)
+                    )
+                    ),
+                AASeriesElement()
+                    .name("Tokyo")
+                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
+                AASeriesElement()
+                    .name("New York")
+                    .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)),
+                AASeriesElement()
+                    .name("Berlin")
+                    .data(arrayOf(0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)),
+                AASeriesElement()
+                    .name("London")
+                    .data(arrayOf(3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
+            )
+            )
+    }
+
+    fun configurestackingColumnMixedLineChartModel(): AAChartModel {
+        return AAChartModel()
+            .title("16年1月-16年11月充值客单分析")//图形标题
+            .subtitle("BY MICVS")//图形副标题
+            .chartType(AAChartType.Column)
+            .stacking(AAChartStackingType.Normal)
+            .legendEnabled(true)
+            .colorsTheme(arrayOf(
+                AAGradientColor.oceanBlueColor(),
+                AAGradientColor.sanguineColor(),
+                AAGradientColor.lusciousLimeColor()
+            )
+            )
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("新用户")
+                    .data(arrayOf(82.89,67.54,62.07,59.43,67.02,67.09,35.66,71.78,81.61,78.85,79.12,72.30)),
+                AASeriesElement()
+                    .name("老用户")
+                    .data(arrayOf(198.66,330.81,151.95,160.12,222.56,229.05,128.53,250.91,224.47,473.99,126.85,260.50)),
+                AASeriesElement()
+                    .name("总量")
+                    .type(AAChartType.Line)
+                    .data(arrayOf(281.55,398.35,214.02,219.55,289.57,296.14,164.18,322.69,306.08,552.84,205.97,332.79))
+            )
+            )
+    }
+
+    fun dashStyleTypeMixedChartModel(): AAChartModel {
+        return AAChartModel()
+            .chartType(AAChartType.Spline)//图形类型
+            .dataLabelEnabled(false)//是否显示数字
+            .stacking(AAChartStackingType.Normal)
+            .markerRadius(0)
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("SolidLine")
+                    .lineWidth(3f)
+                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                AASeriesElement()
+                    .name("Dash")
+                    .lineWidth(3f)
+                    .dashStyle(AAChartLineDashSyleType.Dash)
+                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                AASeriesElement()
+                    .name("DashDot")
+                    .lineWidth(3f)
+                    .dashStyle(AAChartLineDashSyleType.DashDot)
+                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                AASeriesElement()
+                    .name("LongDash")
+                    .lineWidth(3f)
+                    .dashStyle(AAChartLineDashSyleType.LongDash)
+                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                AASeriesElement()
+                    .name("LongDashDot")
+                    .lineWidth(3f)
+                    .dashStyle(AAChartLineDashSyleType.LongDashDot)
+                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320))
+            )
+            )
+    }
+
+    fun negativeColorMixedChartModel(): AAChartModel {
+        return AAChartModel()
+            .dataLabelEnabled(false)//是否显示数字
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Column")
+                    .type(AAChartType.Column)
+                    .data(arrayOf(
+                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
+                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
+                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0
+                    )
+                    )
+                    .color("#0088FF")
+                    .negativeColor("#FF0000")
+                    .threshold(4f)//default:0
+            )
+            )
+    }
+
+//    fun scatterMixedLineChartModel(): AAChartModel {
+//
+//    }
+
+    fun polarChartMixedChartModel(): AAChartModel {
+        return AAChartModel()
+            .chartType(AAChartType.Column)
+            .polar(true)
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Column")
+                    .type(AAChartType.Column)
+                    .data(arrayOf(8, 7, 6, 5, 4, 3, 2, 1)),
+                AASeriesElement()
+                    .name("Line")
+                    .type(AAChartType.Line)
+                    .data(arrayOf(1, 2, 3, 4, 5, 6, 7, 8)),
+                AASeriesElement()
+                    .name("Area")
+                    .type(AAChartType.Area)
+                    .data(arrayOf(1, 8, 2, 7, 3, 6, 4, 5))
+            )
+            )
+    }
+}

+ 335 - 0
app/src/main/java/com/aachartmodel/aainfographics/SpecialChartComposer.kt

@@ -0,0 +1,335 @@
+package com.example.chartcorekotlin
+
+import android.support.v7.app.AppCompatActivity
+import android.os.Bundle
+import com.example.chartcorekotlin.AAChartConfiger.*
+
+object SpecialChartComposer{
+
+
+    fun configurePolarColumnChart(): AAChartModel  {
+
+        return AAChartModel()
+            .chartType(AAChartType.Column)
+            .polar(true)
+            .dataLabelEnabled(false)
+            .categories(arrayOf(
+                "January",
+                "February",
+                "March",
+                "April",
+                "May",
+                "June",
+                "July",
+                "August",
+                "September",
+                "October",
+                "November",
+                "December"
+            )
+            )
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("2018")
+                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)
+                    )
+            )
+            )
+    }
+
+    fun configurePieChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Pie)
+            .backgroundColor("#ffffff")
+            .title("LANGUAGE MARKET SHARES JANUARY,2020 TO MAY")
+            .subtitle("virtual data")
+            .dataLabelEnabled(true)//是否直接显示扇形图数据
+            .yAxisTitle("℃")
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Language market shares")
+                    .data(arrayOf(
+                        arrayOf("Java",   67),
+                        arrayOf("Swift", 999),
+                        arrayOf("Python", 83),
+                        arrayOf("OC",     11),
+                        arrayOf("Go",     30)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun configureBubbleChart(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Bubble)
+            .title("AACHARTKIT BUBBLES")
+            .subtitle("JUST FOR FUN")
+            .yAxisTitle("℃")
+            .gradientColorEnable(true)
+            .colorsTheme(arrayOf("#0c9674", "#7dffc0", "#d11b5f", "#facd32", "#ffffa0", "#EA007B"))
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("BubbleOne")
+                    .data(arrayOf(
+                        arrayOf(97, 36, 79),
+                        arrayOf(94, 74, 60),
+                        arrayOf(68, 76, 58),
+                        arrayOf(64, 87, 56),
+                        arrayOf(68, 27, 73),
+                        arrayOf(74, 99, 42),
+                        arrayOf(7 , 93, 99),
+                        arrayOf(51, 69, 40),
+                        arrayOf(38, 23, 33),
+                        arrayOf(57, 86, 31),
+                        arrayOf(33, 24, 22)
+                    )
+                    ),
+                AASeriesElement()
+                    .name("BubbleTwo")
+                    .data(arrayOf(
+                        arrayOf(25, 60, 87),
+                        arrayOf(2 , 75, 59),
+                        arrayOf(11, 54, 8 ),
+                        arrayOf(86, 55, 93),
+                        arrayOf(5 , 33, 88),
+                        arrayOf(90, 63, 44),
+                        arrayOf(91, 43, 17),
+                        arrayOf(97, 56, 56),
+                        arrayOf(15, 67, 48),
+                        arrayOf(54, 25, 81),
+                        arrayOf(55, 66, 11)
+                    )
+                    ),
+                AASeriesElement()
+                    .name("BubbleThree")
+                    .data(arrayOf(
+                        arrayOf(47, 47, 21),
+                        arrayOf(20, 12, 66),
+                        arrayOf(6 , 76, 91),
+                        arrayOf(38, 30, 60),
+                        arrayOf(57, 98, 64),
+                        arrayOf(61, 47, 80),
+                        arrayOf(83, 60, 13),
+                        arrayOf(67, 78, 75),
+                        arrayOf(64, 12, 55),
+                        arrayOf(30, 77, 82),
+                        arrayOf(88, 66, 13)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun configureAreaSplineRangeChartModel(): AAChartModel  {
+        val gradientColorDic = "#ff0000"
+
+        return AAChartModel()
+            .chartType(AAChartType.Areasplinerange)
+            .title("Area spline range chart")
+            .subtitle("virtual data")
+            .yAxisTitle("℃")
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("2020")
+                    .color(gradientColorDic)//猩红色
+                    .data(arrayOf(
+                        /* 2014-06-01 */
+                        arrayOf(140158080, 5.1,  20.6),
+                        arrayOf(140166720, 6.6,  24.6),
+                        arrayOf(140175360, 9.7,  22.2),
+                        arrayOf(140184000, 9.6,  21.6),
+                        arrayOf(140192640, 13.0, 20.0),
+                        arrayOf(140201280, 12.9, 18.2),
+                        arrayOf(140209920, 8.5,  23.2),
+                        arrayOf(140218560, 9.2,  21.4),
+                        arrayOf(140227200, 10.5, 22.0),
+                        arrayOf(140235840, 7.3,  23.4),
+                        arrayOf(140244480, 12.1, 18.2),
+                        arrayOf(140253120, 11.1, 13.3),
+                        arrayOf(140261760, 10.0, 20.7),
+                        arrayOf(140270400, 5.8,  23.4),
+                        arrayOf(140279040, 7.4,  20.1),
+                        arrayOf(140287680, 10.3, 21.9),
+                        arrayOf(140296320, 7.8,  16.8),
+                        arrayOf(140304960, 11.6, 19.7),
+                        arrayOf(140313600, 9.8,  16.0),
+                        arrayOf(140322240, 10.7, 14.4),
+                        arrayOf(140330880, 9.0,  15.5),
+                        arrayOf(140339520, 5.1,  13.3),
+                        arrayOf(140348160, 10.0, 19.3),
+                        arrayOf(140356800, 5.2,  22.1),
+                        arrayOf(140365440, 6.3,  21.3),
+                        arrayOf(140374080, 5.5,  21.1),
+                        arrayOf(140382720, 8.4,  19.7),
+                        arrayOf(140391360, 7.1,  23.3),
+                        arrayOf(140400000, 6.1,  20.8),
+                        arrayOf(140408640, 8.4,  22.6)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun configureColumnrangeChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Columnrange)
+            .title("TEMPERATURE VARIATION BY MONTH")
+            .subtitle("observed in Gotham city")
+            .yAxisTitle("℃")
+            .categories(arrayOf(
+                "January",
+                "February",
+                "March",
+                "April",
+                "May",
+                "June",
+                "July",
+                "August",
+                "September",
+                "October",
+                "November",
+                "December"
+            )
+            )
+            .dataLabelEnabled(true)
+            .inverted(true)//x 轴是否垂直翻转
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("temperature")
+                    .data(arrayOf(
+                        arrayOf(-9.7,  9.4),
+                        arrayOf(-8.7,  6.5),
+                        arrayOf(-3.5,  9.4),
+                        arrayOf(-1.4, 19.9),
+                        arrayOf(0.0,  22.6),
+                        arrayOf(2.9,  29.5),
+                        arrayOf(9.2,  30.7),
+                        arrayOf(7.3,  26.5),
+                        arrayOf(4.4,  18.0),
+                        arrayOf(-3.1, 11.4),
+                        arrayOf(-5.2, 10.4),
+                        arrayOf(-13.5, 9.8)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun configureStepLineChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Line)//图形类型
+            .animationType(AAChartAnimationType.Bounce)//图形渲染动画类型为"bounce"
+            .title("STEP LINE CHART")//图形标题
+            .subtitle("2020/08/08")//图形副标题
+            .dataLabelEnabled(false)//是否显示数字
+            .symbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式
+            .markerRadius(7)//折线连接点半径长度,为0时相当于没有折线连接点
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Berlin")
+                    .data(arrayOf(450, 432, 401, 454, 590, 530, 510))
+                    .step("right")//设置折线样式为直方折线,折线连接点位置靠右👉
+                , AASeriesElement()
+                    .name("New York")
+                    .data(arrayOf(220, 282, 201, 234, 290, 430, 410))
+                    .step("center")//设置折线样式为直方折线,折线连接点位置居中
+                , AASeriesElement()
+                    .name("Tokyo")
+                    .data(arrayOf(120, 132, 101, 134, 90, 230, 210))
+                    .step("left")//设置折线样式为直方折线,折线连接点位置靠左👈
+            )
+            )
+    }
+
+    fun configureStepAreaChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Area)//图形类型
+            .animationType(AAChartAnimationType.Bounce)//图形渲染动画类型为"bounce"
+            .title("STEP AREA CHART")//图形标题
+            .subtitle("2049/08/08")//图形副标题
+            .dataLabelEnabled(false)//是否显示数字
+            .symbolStyle(AAChartSymbolStyleType.InnerBlank)//折线连接点样式
+            .markerRadius(0)//折线连接点半径长度,为0时相当于没有折线连接点
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Berlin")
+                    .data(arrayOf(450, 432, 401, 454, 590, 530, 510))
+                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
+                , AASeriesElement()
+                    .name("New York")
+                    .data(arrayOf(220, 282, 201, 234, 290, 430, 410))
+                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
+                , AASeriesElement()
+                    .name("Tokyo")
+                    .data(arrayOf(120, 132, 101, 134, 90, 230, 210))
+                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
+            )
+            )
+    }
+
+    fun configureBoxplotChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Boxplot)
+            .title("BOXPLOT CHART")
+            .subtitle("virtual data")
+            .yAxisTitle("℃")
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("Observed Data")
+                    .color("#ef476f")
+                    .data(arrayOf(
+                        arrayOf(760, 801, 848, 895, 965),
+                        arrayOf(733, 853, 939, 980,1080),
+                        arrayOf(714, 762, 817, 870, 918),
+                        arrayOf(724, 802, 806, 871, 950),
+                        arrayOf(834, 836, 864, 882, 910)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun configurePyramidChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Pyramid)
+            .title("THE HEAT OF PROGRAM LANGUAGE")
+            .subtitle("virtual data")
+            .yAxisTitle("℃")
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("2020")
+                    .data(arrayOf(
+                        arrayOf("Swift",       11850),
+                        arrayOf("Objective-C", 12379),
+                        arrayOf("JavaScript",  14286),
+                        arrayOf("Go",          15552),
+                        arrayOf("Python",      18654)
+                    )
+                    )
+            )
+            )
+    }
+
+    fun congfigureFunnelChartModel(): AAChartModel  {
+        return AAChartModel()
+            .chartType(AAChartType.Funnel)
+            .title("THE HEAT OF PROGRAM LANGUAGE")
+            .subtitle("virtual data")
+            .yAxisTitle("℉")
+            .series(arrayOf(
+                AASeriesElement()
+                    .name("2020")
+                    .data(arrayOf(
+                        arrayOf("Swift",       11850),
+                        arrayOf("Objective-C", 12379),
+                        arrayOf("JavaScript",  14286),
+                        arrayOf("Go",          15552),
+                        arrayOf("Python",      18654)
+                    )
+                    )
+            )
+            )
+    }
+
+}

+ 34 - 0
app/src/main/res/drawable-v24/ic_launcher_foreground.xml

@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:aapt="http://schemas.android.com/aapt"
+        android:width="108dp"
+        android:height="108dp"
+        android:viewportHeight="108"
+        android:viewportWidth="108">
+    <path
+            android:fillType="evenOdd"
+            android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+            android:strokeColor="#00000000"
+            android:strokeWidth="1">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                    android:endX="78.5885"
+                    android:endY="90.9159"
+                    android:startX="48.7653"
+                    android:startY="61.0927"
+                    android:type="linear">
+                <item
+                        android:color="#44000000"
+                        android:offset="0.0"/>
+                <item
+                        android:color="#00000000"
+                        android:offset="1.0"/>
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+            android:fillColor="#FFFFFF"
+            android:fillType="nonZero"
+            android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+            android:strokeColor="#00000000"
+            android:strokeWidth="1"/>
+</vector>

+ 74 - 0
app/src/main/res/drawable/ic_launcher_background.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:height="108dp"
+        android:width="108dp"
+        android:viewportHeight="108"
+        android:viewportWidth="108">
+    <path android:fillColor="#008577"
+          android:pathData="M0,0h108v108h-108z"/>
+    <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>

+ 19 - 0
app/src/main/res/layout/activity_main.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:context=".MainActivity">
+
+    <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Hello World!"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent"/>
+
+</android.support.constraint.ConstraintLayout>

+ 5 - 0
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon>

+ 5 - 0
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon>

BIN
app/src/main/res/mipmap-hdpi/ic_launcher.png


BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.png


BIN
app/src/main/res/mipmap-mdpi/ic_launcher.png


BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.png


BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.png


Some files were not shown because too many files changed in this diff