Просмотр исходного кода

添加基本的撤销,重做,重置等功能

zengjiebin лет назад: 7
Родитель
Сommit
ed9cf050a1

+ 0 - 1
media/app/src/main/java/com/kfzs/cfyl/media/fragment/FgtColorList.java

@@ -80,7 +80,6 @@ public class FgtColorList extends BaseFragment {
     public FgtColorList loadData(Action1<Integer> selectColorAction1){
         this.selectColorAction1 = selectColorAction1;
         tryInitList();
-        selectPosition(curPosition);
         return this;
     }
 

+ 43 - 10
media/app/src/main/java/com/kfzs/cfyl/media/fragment/FgtDoodle.java

@@ -16,6 +16,7 @@ import com.kfzs.cfyl.media.BaseListFgtFgt;
 import com.kfzs.cfyl.media.R;
 import com.kfzs.cfyl.media.adapter.ViewPagerFragmentAdapter;
 import com.kfzs.cfyl.media.util.G;
+import com.kfzs.cfyl.media.util.ListUtil;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -34,6 +35,7 @@ import cn.hzw.doodle.DoodleTouchDetector;
 import cn.hzw.doodle.DoodleView;
 import cn.hzw.doodle.IDoodleListener;
 import cn.hzw.doodle.core.IDoodle;
+import cn.hzw.doodle.core.IDoodleItem;
 import cn.hzw.doodle.core.IDoodlePen;
 import cn.hzw.doodle.core.IDoodleSelectableItem;
 import cn.hzw.doodle.core.IDoodleTouchDetector;
@@ -77,6 +79,22 @@ public class FgtDoodle extends BaseFragment {
             }
         });
 
+        View media_video_redo_iv = findViewById(R.id.media_video_redo_iv);
+        media_video_redo_iv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                onClickRedo(view);
+            }
+        });
+
+        View media_video_reset_tv = findViewById(R.id.media_video_reset_tv);
+        media_video_reset_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                onClickReset(view);
+            }
+        });
+
         View media_edit_video_sure_iv = findViewById(R.id.media_edit_video_sure_iv);
         media_edit_video_sure_iv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -86,17 +104,32 @@ public class FgtDoodle extends BaseFragment {
         });
     }
 
-    //点击返回
+    //点击撤销
     public void onClickBackImg(View view) {
-        Activity activity = getActivity();
-        if (activity instanceof BaseListFgtActivity) {
-            Fragment fragment = ((BaseListFgtActivity) activity).getFgtByPosition(FgtEditVideoTypeList.POSITION);
-            if (fragment instanceof BaseListFgtFgt) {
-                if (((BaseListFgtFgt) fragment).switchLastFgt()) {
-                    return;
-                }
+        if(mDoodleView != null){
+            IDoodleItem lastItem = ListUtil.getLast(mDoodleView.getAllItem());
+            if(lastItem != null){
+                mDoodleView.removeItem(lastItem);
+                redoList.add(lastItem);
+            }
+        }
+    }
+    private List<IDoodleItem> redoList = new ArrayList<>();
+    //点击重做
+    public void onClickRedo(View view) {
+        if(mDoodleView != null){
+            IDoodleItem lastItem = ListUtil.getLast(redoList);
+            if(lastItem != null){
+                redoList.remove(lastItem);
+                mDoodleView.addItem(lastItem);
             }
-            onClickNext(view);
+        }
+    }
+    //点击重置
+    public void onClickReset(View view) {
+        if(mDoodleView != null){
+            mDoodleView.clear();
+            redoList.clear();
         }
     }
 
@@ -199,7 +232,7 @@ public class FgtDoodle extends BaseFragment {
 // Setting parameters.设置参数
         mDoodleView.setPen(DoodlePen.TEXT);
         mDoodleView.setShape(DoodleShape.HAND_WRITE);
-        mDoodleView.setColor(new DoodleColor(Color.RED));
+        mDoodleView.setColor(new DoodleColor(Color.WHITE));
         mDoodle.setIsDrawableOutside(mDoodleParams.mIsDrawableOutside);
 
         media_fgt_doodle_container.addView(mDoodleView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

+ 23 - 0
media/app/src/main/res/layout/media_fgt_doodle.xml

@@ -18,6 +18,29 @@
         android:src="@drawable/media_narrow_back_white"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
+    <ImageView
+        android:id="@+id/media_video_redo_iv"
+        android:layout_width="?attr/actionBarSize"
+        android:layout_height="?attr/actionBarSize"
+        android:layout_marginTop="20dp"
+        android:scaleType="centerInside"
+        android:rotation="180"
+        android:src="@drawable/media_narrow_back_white"
+        app:layout_constraintStart_toEndOf="@id/media_video_back_iv"
+        app:layout_constraintTop_toTopOf="parent" />
+    <TextView
+        android:id="@+id/media_video_reset_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="?attr/actionBarSize"
+        android:layout_marginTop="20dp"
+        android:text="重置"
+        android:textColor="@color/media_white"
+        android:textSize="15sp"
+        android:gravity="center"
+        android:paddingStart="10dp"
+        android:paddingEnd="10dp"
+        app:layout_constraintStart_toEndOf="@id/media_video_redo_iv"
+        app:layout_constraintTop_toTopOf="parent"/>
 
     <ImageView
         android:id="@+id/media_edit_video_sure_iv"