diff --git a/gallery/build.properties b/gallery/build.properties
index 50fcf6e..67efba4 100644
--- a/gallery/build.properties
+++ b/gallery/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Tue Apr 28 09:48:58 CST 2026
+#Tue Apr 28 09:59:23 CST 2026
stageCount=7
libraryProject=
baseVersion=15.0
publishVersion=15.0.6
-buildCount=30
+buildCount=33
baseBetaVersion=15.0.7
diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java b/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java
index e0f0ff5..b68daca 100644
--- a/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java
+++ b/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java
@@ -10,6 +10,7 @@ import android.provider.MediaStore;
import android.view.View;
import android.widget.ImageView;
import android.widget.ScrollView;
+import android.widget.SeekBar;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import cc.winboll.studio.libappbase.LogUtils;
@@ -78,22 +79,22 @@ public class CropActivity extends AppCompatActivity {
});
zoomContainer = findViewById(R.id.zoom_container);
- findViewById(R.id.btn_zoom_in).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (zoomContainer != null) {
- zoomContainer.zoomIn();
- }
- }
- });
- findViewById(R.id.btn_zoom_out).setOnClickListener(new View.OnClickListener() {
+ SeekBar seekBarZoom = findViewById(R.id.seekbar_zoom);
+ seekBarZoom.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
- public void onClick(View v) {
- if (zoomContainer != null) {
- zoomContainer.zoomOut();
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ if (zoomContainer != null && fromUser) {
+ float scale = 0.1f + (progress / 100f) * 4.9f;
+ zoomContainer.setScaleFactor(scale);
}
}
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {}
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {}
});
cropCanvasView = findViewById(R.id.crop_canvas_view);
diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/ZoomContainerView.java b/gallery/src/main/java/cc/winboll/studio/gallery/ZoomContainerView.java
index 0a04cac..55aa2bc 100644
--- a/gallery/src/main/java/cc/winboll/studio/gallery/ZoomContainerView.java
+++ b/gallery/src/main/java/cc/winboll/studio/gallery/ZoomContainerView.java
@@ -13,7 +13,7 @@ import android.widget.FrameLayout;
public class ZoomContainerView extends FrameLayout {
private float scaleFactor = 1.0f;
- private float minScale = 0.5f;
+ private float minScale = 0.1f;
private float maxScale = 5.0f;
private static final float ZOOM_STEP = 0.25f;
@@ -98,6 +98,12 @@ public class ZoomContainerView extends FrameLayout {
return scaleFactor;
}
+ public void setScaleFactor(float scale) {
+ scaleFactor = Math.max(minScale, Math.min(scale, maxScale));
+ requestLayout();
+ invalidate();
+ }
+
public void resetZoom() {
scaleFactor = 1.0f;
invalidate();
diff --git a/gallery/src/main/res/layout/activity_crop.xml b/gallery/src/main/res/layout/activity_crop.xml
index 2c3bc9d..809df2b 100644
--- a/gallery/src/main/res/layout/activity_crop.xml
+++ b/gallery/src/main/res/layout/activity_crop.xml
@@ -34,22 +34,6 @@
android:layout_height="0dp"
android:layout_weight="1"/>
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file