Kaynağa Gözat

Graphy增加适配视图功能。

庞利祥 5 yıl önce
ebeveyn
işleme
6f9a1a1415
36 değiştirilmiş dosya ile 124 ekleme ve 52 silme
  1. BIN
      .gradle/5.2.1/fileHashes/fileHashes.lock
  2. BIN
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  3. 1 1
      demo/build/generated/source/buildConfig/debug/com/sybotan/android/demo/BuildConfig.java
  4. 15 29
      demo/src/main/java/com/sybotan/android/demo/activities/GraphyActivity.kt
  5. 2 2
      gradle.properties
  6. 1 1
      sybotan-android-base/build/generated/source/buildConfig/debug/com/sybotan/android/base/BuildConfig.java
  7. 1 1
      sybotan-android-base/build/generated/source/buildConfig/release/com/sybotan/android/base/BuildConfig.java
  8. 1 1
      sybotan-android-base/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml
  9. 1 1
      sybotan-android-base/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output.json
  10. BIN
      sybotan-android-base/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/sybotan/android/base/BuildConfig.class
  11. 1 1
      sybotan-android-base/build/intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest.xml
  12. 1 1
      sybotan-android-base/build/intermediates/merged_manifests/release/processReleaseManifest/merged/output.json
  13. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/build-history.bin
  14. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab
  15. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at
  16. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/proto.tab
  17. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at
  18. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab
  19. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at
  20. BIN
      sybotan-android-base/build/kotlin/compileReleaseKotlin/last-build.bin
  21. 1 1
      sybotan-android-base/build/reports/lint-results.html
  22. 1 1
      sybotan-android-database/build/generated/source/buildConfig/debug/com/sybotan/android/database/BuildConfig.java
  23. 1 1
      sybotan-android-database/build/generated/source/buildConfig/release/com/sybotan/android/database/BuildConfig.java
  24. BIN
      sybotan-android-database/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/sybotan/android/database/BuildConfig.class
  25. BIN
      sybotan-android-database/build/intermediates/packaged-classes/release/classes.jar
  26. 31 0
      sybotan-android-database/src/main/java/com/sybotan/android/database/SAndroidDao.kt
  27. 1 1
      sybotan-android-devices/build/generated/source/buildConfig/debug/com/sybotan/android/devices/BuildConfig.java
  28. 1 1
      sybotan-android-devices/build/generated/source/buildConfig/release/com/sybotan/android/devices/BuildConfig.java
  29. 1 1
      sybotan-android-graphy/build/generated/source/buildConfig/debug/com/sybotan/android/graphy/BuildConfig.java
  30. 1 1
      sybotan-android-graphy/build/generated/source/buildConfig/release/com/sybotan/android/graphy/BuildConfig.java
  31. 1 1
      sybotan-android-graphy/src/main/java/com/sybotan/android/graphy/SGraphyItem.kt
  32. 57 2
      sybotan-android-graphy/src/main/java/com/sybotan/android/graphy/SGraphyView.kt
  33. 1 1
      sybotan-android-views/build/generated/source/buildConfig/debug/com/sybotan/views/BuildConfig.java
  34. 1 1
      sybotan-android-views/build/generated/source/buildConfig/release/com/sybotan/views/BuildConfig.java
  35. 1 1
      sybotan-android-works/build/generated/source/buildConfig/debug/com/sybotan/android/works/BuildConfig.java
  36. 1 1
      sybotan-android-works/build/generated/source/buildConfig/release/com/sybotan/android/works/BuildConfig.java

BIN
.gradle/5.2.1/fileHashes/fileHashes.lock


BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


+ 1 - 1
demo/build/generated/source/buildConfig/debug/com/sybotan/android/demo/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 15 - 29
demo/src/main/java/com/sybotan/android/demo/activities/GraphyActivity.kt

@@ -92,38 +92,24 @@ class GraphyActivity : AppCompatActivity() {
      * 加载墙数据
      */
     private fun loadWalls() {
-        val revit = SJsonUtil.fromJson<Revit>(applicationContext.assets.open("WallDatas.json"), PropertyNamingStrategy.UPPER_CAMEL_CASE)
-        Log.d(TAG, "name=${revit.name}")
-        Log.d(TAG, "${revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!}")
-
-        Log.d(TAG, "line.size=${revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!.size}")
-        //for ( line in revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!) {
-        for ( line in revit.floorDatas!![0].lines!!) {
-            val pointList = ArrayList<PointF>()
-            Log.d(TAG, "point.size=${line.size}")
-            for (t in 0 until  line.size) {
-                val p1 = line[t].split(",")
-                val point = PointF(p1[0].toFloat() * 20  + 12000, -p1[1].toFloat() * 20  -20600)
-                pointList.add(point)
-            }
-            scene.addItem(GraphyWallItem(pointList))
-        }
-        println()
-//        for ( line in revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!) {
-//            var p1 = line[0].split(",")
-//            var x1 = p1[0].toFloat() * 3 + 500
-//            var y1 = -p1[1].toFloat() * 3 + 1200
-//            for (t in 1 until  line.size) {
-//                var p1 = line[t].split(",")
-//                var x2 = p1[0].toFloat() * 3  + 500
-//                var y2 = -p1[1].toFloat() * 3  + 1200
-//                scene.addLineItem(x1, y1, x2, y2)
+//        val revit = SJsonUtil.fromJson<Revit>(applicationContext.assets.open("WallDatas.json"), PropertyNamingStrategy.UPPER_CAMEL_CASE)
+//        Log.d(TAG, "name=${revit.name}")
+//        Log.d(TAG, "${revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!}")
 //
-//                x1 = x2
-//                y1 = y2
-//                break
+//        Log.d(TAG, "line.size=${revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!.size}")
+//        //for ( line in revit.floorDatas!![revit.floorDatas!!.size - 1].lines!!) {
+//        for ( line in revit.floorDatas!![0].lines!!) {
+//            val pointList = ArrayList<PointF>()
+//            Log.d(TAG, "point.size=${line.size}")
+//            for (t in 0 until  line.size) {
+//                val p1 = line[t].split(",")
+//                val point = PointF(p1[0].toFloat() * 20  + 12000, -p1[1].toFloat() * 20  -20600)
+//                pointList.add(point)
 //            }
+//            scene.addItem(GraphyWallItem(pointList))
 //        }
+//        println()
+
         return
     } // Function loadWalls()
 

+ 2 - 2
gradle.properties

@@ -24,8 +24,8 @@ org.gradle.jvmargs = -Xmx1536m
 #org.gradle.configureondemand=false
 
 SYBOTAN_URL = http://www.sybotan.com
-SYBOTAN_KOTLIN_VERSION = 1.4.51
-SYBOTAN_ANDROID_VERSION = 1.2.22
+SYBOTAN_KOTLIN_VERSION = 1.4.63
+SYBOTAN_ANDROID_VERSION = 1.2.35
 SYBOTAN_CODE = 5
 SYBOTAN_GROUP = com.sybotan
 

+ 1 - 1
sybotan-android-base/build/generated/source/buildConfig/debug/com/sybotan/android/base/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-base/build/generated/source/buildConfig/release/com/sybotan/android/base/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-base/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml

@@ -24,7 +24,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.sybotan.android.base"
     android:versionCode="5"
-    android:versionName="1.2.22" >
+    android:versionName="1.2.35" >
 
     <uses-sdk
         android:minSdkVersion="21"

+ 1 - 1
sybotan-android-base/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output.json

@@ -1 +1 @@
-[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":5,"versionName":"1.2.22","enabled":true,"outputFile":"sybotan-android-base-release.aar","fullName":"release","baseName":"release"},"path":"AndroidManifest.xml","properties":{"packageId":"com.sybotan.android.base","split":""}}]
+[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":5,"versionName":"1.2.35","enabled":true,"outputFile":"sybotan-android-base-release.aar","fullName":"release","baseName":"release"},"path":"AndroidManifest.xml","properties":{"packageId":"com.sybotan.android.base","split":""}}]

BIN
sybotan-android-base/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/sybotan/android/base/BuildConfig.class


+ 1 - 1
sybotan-android-base/build/intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest.xml

@@ -24,7 +24,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.sybotan.android.base"
     android:versionCode="5"
-    android:versionName="1.2.22" >
+    android:versionName="1.2.35" >
 
     <uses-sdk
         android:minSdkVersion="21"

+ 1 - 1
sybotan-android-base/build/intermediates/merged_manifests/release/processReleaseManifest/merged/output.json

@@ -1 +1 @@
-[{"outputType":{"type":"MERGED_MANIFESTS"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":5,"versionName":"1.2.22","enabled":true,"outputFile":"sybotan-android-base-release.aar","fullName":"release","baseName":"release"},"path":"AndroidManifest.xml","properties":{"packageId":"com.sybotan.android.base","split":""}}]
+[{"outputType":{"type":"MERGED_MANIFESTS"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":5,"versionName":"1.2.35","enabled":true,"outputFile":"sybotan-android-base-release.aar","fullName":"release","baseName":"release"},"path":"AndroidManifest.xml","properties":{"packageId":"com.sybotan.android.base","split":""}}]

BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/build-history.bin


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/proto.tab


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at


BIN
sybotan-android-base/build/kotlin/compileReleaseKotlin/last-build.bin


+ 1 - 1
sybotan-android-base/build/reports/lint-results.html

@@ -176,7 +176,7 @@ document.getElementById(id).style.display = 'none';
       <span class="mdl-layout-title">Lint Report: No errors or warnings</span>
       <div class="mdl-layout-spacer"></div>
       <nav class="mdl-navigation mdl-layout--large-screen-only">
-Check performed at Tue Sep 17 18:27:20 CST 2019      </nav>
+Check performed at Wed Sep 18 16:26:32 CST 2019      </nav>
     </div>
   </header>
   <div class="mdl-layout__drawer">

+ 1 - 1
sybotan-android-database/build/generated/source/buildConfig/debug/com/sybotan/android/database/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-database/build/generated/source/buildConfig/release/com/sybotan/android/database/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

BIN
sybotan-android-database/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/sybotan/android/database/BuildConfig.class


BIN
sybotan-android-database/build/intermediates/packaged-classes/release/classes.jar


+ 31 - 0
sybotan-android-database/src/main/java/com/sybotan/android/database/SAndroidDao.kt

@@ -32,6 +32,7 @@ import com.sybotan.database.SFilter
 import com.sybotan.database.SQueryBuilder
 import com.sybotan.database.enums.SOps
 import com.sybotan.database.enums.SDirection
+import com.sybotan.database.extensions.keyColumnList
 import org.jetbrains.anko.db.*
 import java.io.Serializable
 import javax.persistence.Column
@@ -64,6 +65,20 @@ abstract class SAndroidDao<ENTITY: Any>(entityClazz: Class<ENTITY>) : SAbstractD
     } // Function insert()
 
     /**
+     * 在数据库中插入实体
+     *
+     * @param   entity      插入数据库的实体
+     * @return  手入是否成功
+     */
+    override fun replace(entity: ENTITY): Boolean {
+        use {
+            val listPair= buildInsertValues(entity)
+            replace("`${tableName()}`", *Array(listPair.size){i-> listPair[i]})
+        }
+        return true
+    } // Function replace()
+
+    /**
      * 根据条件删除
      *
      * @param   args        删除条件
@@ -447,4 +462,20 @@ abstract class SAndroidDao<ENTITY: Any>(entityClazz: Class<ENTITY>) : SAbstractD
             throw SFieldNotFoundException(name)
         }
     } // Function propertyName()
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // 级联操作相关
+    /**
+     * 查询级联关系
+     *
+     * @param   table       表名
+     * @param   id1         对象表ID字段名
+     * @param   id2         级联对象ID字段名
+     * @param   self        自身级联
+     * @param   idList      对象ID列表
+     * @return  关系列表
+     */
+    override fun relationQuery(table: String, id1: String, id2: String, self: Boolean, idList: ArrayList<Any>): ArrayList<HashMap<String, Any>> {
+        return ArrayList<HashMap<String, Any>>();
+    } // Function cascadeIdList()
 } // Class SAndroidDao

+ 1 - 1
sybotan-android-devices/build/generated/source/buildConfig/debug/com/sybotan/android/devices/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-devices/build/generated/source/buildConfig/release/com/sybotan/android/devices/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-graphy/build/generated/source/buildConfig/debug/com/sybotan/android/graphy/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-graphy/build/generated/source/buildConfig/release/com/sybotan/android/graphy/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-graphy/src/main/java/com/sybotan/android/graphy/SGraphyItem.kt

@@ -368,7 +368,7 @@ open class SGraphyItem(parent: SGraphyItem? = null) {
                 // item位移到指定位置绘制
                 canvas.translate(item.pos.x, item.pos.y)
                 // 设置绘制区域
-                canvas.clipRect(item.boundingRect())
+                // canvas.clipRect(item.boundingRect())
                 // 绘制item
                 item.onDraw(canvas, rect)
                 // 恢复画布状态

+ 57 - 2
sybotan-android-graphy/src/main/java/com/sybotan/android/graphy/SGraphyView.kt

@@ -49,6 +49,7 @@ open class SGraphyView(context: Context, attrs: AttributeSet? = null)
      */
     companion object {
         private val TAG = SGraphyView::class.java.name
+        private var fitrate =0.8f
     } // companion object
 
     /** 指向加载到视图中的场景 */
@@ -68,13 +69,17 @@ open class SGraphyView(context: Context, attrs: AttributeSet? = null)
     /** 缩放比例 */
     var scale = 1f
         get() = max(min(field, maxScale), minScale)
+        set(value) {
+            field = value
+            moveRange()
+        }
     /** 最小缩放比例 */
-    var minScale = 0.1f
+    var minScale = 0.0000001f
         set(value) {
             field = min(value, maxScale)
         }
     /** 最大缩放比例 */
-    var maxScale = 10f
+    var maxScale = 1000000f
         set(value) {
             field = max(value, minScale)
         }
@@ -117,6 +122,56 @@ open class SGraphyView(context: Context, attrs: AttributeSet? = null)
         initView()
     } // init
 
+    /**
+     * 适配视图到视图
+     */
+    fun fitSceneToView() {
+        // 未设置场景
+        if (null == scene) {
+            return
+        }
+
+        val w = width.toFloat()
+        val h = height.toFloat()
+        val rect = scene!!.worldRect()
+        setCenterPoint( PointF(rect.centerX(), rect.centerY()),
+                min(w / rect.width(), h / rect.height()) * fitrate)
+    } // Function FitView()
+
+    /**
+     * 设置中心点
+     *
+     * @param scale 场景的缩放比例
+     */
+    fun setCenterPoint(pos : PointF, scale : Float? = null) {
+        if (scale != null){
+            this.scale = scale
+        }
+        this.pos = PointF(-pos.x  * this.scale + this.width.toFloat() / 2f,
+                -pos.y * this.scale + this.height.toFloat() / 2f)
+    } // Function setCenterPoint()
+
+    /**
+     * 限定移动范围
+     */
+    fun moveRange(){
+        if (scene == null) {
+            return
+        }
+        val w= this.width.toFloat()
+        val h = this.height.toFloat()
+        val rect = scene!!.worldRect()
+        this.minPos = PointF(-rect.centerX() * this.scale + w / 2f - rect.width() / 2f * this.scale,
+                -rect.centerY() * this.scale + h / 2f - rect.height() / 2f * this.scale)
+        /**
+         *   -(rect.left + rect.right) / 2f * graphyView.scale  + width / 2 图形的中心点,
+         *   rect.width() / 2 * graphyView.scale / 0.8f 图形宽度的一半乘以缩放比例除以适配百分比
+         *
+         */
+        this.maxPos = PointF(-rect.centerX() * this.scale  + w / 2f + rect.width() / 2f * this.scale,
+                -rect.centerY() * this.scale +  h / 2f + rect.height() / 2f * this.scale)
+    } // Function moveRange()
+
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     // Surface相关操作
     /**

+ 1 - 1
sybotan-android-views/build/generated/source/buildConfig/debug/com/sybotan/views/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-views/build/generated/source/buildConfig/release/com/sybotan/views/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-works/build/generated/source/buildConfig/debug/com/sybotan/android/works/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "debug";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }

+ 1 - 1
sybotan-android-works/build/generated/source/buildConfig/release/com/sybotan/android/works/BuildConfig.java

@@ -9,5 +9,5 @@ public final class BuildConfig {
   public static final String BUILD_TYPE = "release";
   public static final String FLAVOR = "";
   public static final int VERSION_CODE = 5;
-  public static final String VERSION_NAME = "1.2.22";
+  public static final String VERSION_NAME = "1.2.35";
 }