From 82e57df230ecb744af6c8865f80870ba03c86d89 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期二, 25 七月 2023 22:18:27 +0800
Subject: [PATCH] 基本功能完成

---
 app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java b/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
index 07caf2b..1261c72 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
@@ -4,6 +4,7 @@
 import android.content.Context;
 import android.graphics.Canvas;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.GestureDetector;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -11,8 +12,10 @@
 import android.view.View;
 import android.widget.OverScroller;
 import android.widget.RelativeLayout;
+import android.widget.Toast;
 
 import androidx.annotation.Nullable;
+import androidx.constraintlayout.utils.widget.ImageFilterView;
 
 import com.application.zhangshi_app_android.R;
 
@@ -48,7 +51,9 @@
     // 鏀惧ぇ鍚庢墜鎸囩Щ鍔ㄤ綅缃�
     private final OffSet moveOffset = new OffSet();
     private boolean isDoubleClickZoomIn = false;
-    
+
+
+    private ImageFilterView imageFilterView;
     public TreeView(Context context) {
         this(context, null);
     }
@@ -70,6 +75,18 @@
         layoutParams.alignWithParent = true;
         layoutParams.addRule(CENTER_IN_PARENT);
         addView(treeView,layoutParams);
+
+        imageFilterView = treeView.findViewById(R.id.imageFilterView);
+        imageFilterView.setOnTouchListener(new OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                Log.d("TAG", "onTouch: getX"+event.getX());
+                Log.d("TAG", "onTouch: getY"+event.getY());
+                Toast.makeText(mContext,"琚Е鎽�",Toast.LENGTH_SHORT).show();
+                return false;
+            }
+        });
+
         mGestureDetector = new GestureDetector(context, new MyGestureListener());
         mScaleGestureDetector = new ScaleGestureDetector(context, new MyScaleGestureListener());
         mOverScroller = new OverScroller(context);
@@ -102,24 +119,40 @@
         bigScale = (float) getHeight() / (float) treeView.getMeasuredHeight() * ZOOM_SCALE;
 
         // 褰撳墠缂╂斁姣斾緥 = 缂╂斁鍓嶇殑姣斾緥
-        currentScale = smallScale;
+        currentScale = 1;
+
+        Log.d("TAG", "onSizeChanged: getX"+imageFilterView.getX());
+        Log.d("TAG", "onSizeChanged: getY"+imageFilterView.getY());
     }
 
+//    @Override
+//    public boolean dispatchTouchEvent(MotionEvent ev) {
+//        // 瀵硅Е鎽镐簨浠惰繘琛岀缉鏀惧拰骞崇Щ鍙樻崲
+//        MotionEvent event = MotionEvent.obtain(ev);
+//        event.setLocation((event.getX() - moveOffset.getPhyX()) / currentScale, (event.getY() - moveOffset.getPhyY()) / currentScale);
+//
+//        // 灏嗚Е鎽镐簨浠朵紶閫掔粰瀛愯鍥�
+//        boolean handled = super.dispatchTouchEvent(event);
+//
+//        // 鍥炴敹瑙︽懜浜嬩欢
+//        event.recycle();
+//
+//        return handled;
+//    }
     @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
         canvas.scale(currentScale, currentScale, getWidth() / 2f, getHeight() / 2f);
-        // 绉诲姩鐢诲竷
-        if (isDoubleClickZoomIn){
-            if (currentScale <= bigScale) {//鍙屽嚮鏀瑰彉鐘舵�佹椂鍋忕Щ閲忛殢鐫�缂╂斁姣斾緥鍙樺寲
-                float a = (currentScale - smallScale) / (bigScale - smallScale);
-                moveOffset.setPhyX(moveOffset.getPhyX() * a);
-                moveOffset.setPhyY(moveOffset.getPhyY() * a);
-            }
-        }
+//        // 绉诲姩鐢诲竷
+//        if (isDoubleClickZoomIn){
+//            if (currentScale <= bigScale) {//鍙屽嚮鏀瑰彉鐘舵�佹椂鍋忕Щ閲忛殢鐫�缂╂斁姣斾緥鍙樺寲
+//                float a = (currentScale - smallScale) / (bigScale - smallScale);
+//                moveOffset.setPhyX(moveOffset.getPhyX() * a);
+//                moveOffset.setPhyY(moveOffset.getPhyY() * a);
+//            }
+//        }
         canvas.translate(moveOffset.getLogX(currentScale), moveOffset.getLogY(currentScale));
     }
-
     @Override
     public boolean onTouchEvent(MotionEvent event) {
         // 鍙屾寚鎿嶄綔
@@ -137,6 +170,9 @@
         // 鍙屽嚮鎯呭喌 : 绗簩娆℃姮璧穂ACTION_POINTER_UP]鏃跺�欒Е鍙�
         @Override
         public boolean onSingleTapUp(MotionEvent e) {
+            Log.d("onDown", "onUp: ");
+            Log.d("onDown", "onUp: e.getX() = " + e.getX());
+            Log.d("onDown", "onUp: e.getY() = " + e.getY());
             return super.onSingleTapUp(e);
         }
 
@@ -193,6 +229,7 @@
             return true;
         }
 
+
         // 鍙屽嚮 -- 绗簩娆℃寜涓嬫椂鍊欒Е鍙� (40ms - 300ms) [灏忎簬40ms鏄负浜嗛槻姝㈡姈鍔╙
         @Override
         public boolean onDoubleTap(MotionEvent e) {

--
Gitblit v1.9.1