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