diff --git a/gallery/build.properties b/gallery/build.properties
index ca4a756..5a1f85c 100644
--- a/gallery/build.properties
+++ b/gallery/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Tue Apr 28 18:27:43 CST 2026
+#Tue Apr 28 19:41:44 CST 2026
stageCount=10
libraryProject=
baseVersion=15.0
publishVersion=15.0.9
-buildCount=3
+buildCount=11
baseBetaVersion=15.0.10
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 e160c67..b1102b3 100644
--- a/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java
+++ b/gallery/src/main/java/cc/winboll/studio/gallery/CropActivity.java
@@ -3,6 +3,7 @@ package cc.winboll.studio.gallery;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.RectF;
+import android.graphics.drawable.GradientDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.content.DialogInterface;
@@ -115,10 +116,11 @@ public class CropActivity extends AppCompatActivity {
cropCanvasView = findViewById(R.id.crop_canvas_view);
final View colorView = findViewById(R.id.color_view);
+ final GradientDrawable colorDrawable = (GradientDrawable) colorView.getBackground();
cropCanvasView.setOnBackgroundColorChangedListener(new CropCanvasView.OnBackgroundColorChangedListener() {
@Override
public void onBackgroundColorChanged(int color) {
- colorView.setBackgroundColor(color);
+ colorDrawable.setColor(color);
}
});
@@ -127,7 +129,7 @@ public class CropActivity extends AppCompatActivity {
public void onColorPicked(int color) {
int pickX = cropCanvasView.getLastPickImageX();
int pickY = cropCanvasView.getLastPickImageY();
- colorView.setBackgroundColor(color);
+ colorDrawable.setColor(color);
Toast.makeText(CropActivity.this,
"颜色已拾取: #" + String.format("%06X", color & 0xFFFFFF) +
" (" + pickX + "," + pickY + ")",
@@ -143,7 +145,7 @@ public class CropActivity extends AppCompatActivity {
}
});
- colorView.setBackgroundColor(cropCanvasView.getBackgroundColor());
+ colorDrawable.setColor(cropCanvasView.getBackgroundColor());
loadImage();
}
diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/CropCanvasView.java b/gallery/src/main/java/cc/winboll/studio/gallery/CropCanvasView.java
index 4a39fff..759dd65 100644
--- a/gallery/src/main/java/cc/winboll/studio/gallery/CropCanvasView.java
+++ b/gallery/src/main/java/cc/winboll/studio/gallery/CropCanvasView.java
@@ -518,7 +518,15 @@ public class CropCanvasView extends View {
if (colorPickMode) {
if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {
if (originalBitmap != null && !originalBitmap.isRecycled()) {
- previewColor = getImageColorAt(x, y);
+ float imgX = screenToImageX(x);
+ float imgY = screenToImageY(y);
+ if (imageBounds.contains(imgX, imgY)) {
+ previewColor = getImageColorAt(x, y);
+ } else if (canvasBounds.contains(x, y)) {
+ previewColor = backgroundColor;
+ } else {
+ previewColor = Color.TRANSPARENT;
+ }
lastPickX = x;
lastPickY = y;
if (backgroundColorChangedListener != null) {
diff --git a/gallery/src/main/res/drawable/bg_color_circle.xml b/gallery/src/main/res/drawable/bg_color_circle.xml
index a9fbe48..847f7a9 100644
--- a/gallery/src/main/res/drawable/bg_color_circle.xml
+++ b/gallery/src/main/res/drawable/bg_color_circle.xml
@@ -1,6 +1,7 @@
-
+
+
\ No newline at end of file
diff --git a/gallery/src/main/res/layout/activity_crop.xml b/gallery/src/main/res/layout/activity_crop.xml
index 6679297..edc9070 100644
--- a/gallery/src/main/res/layout/activity_crop.xml
+++ b/gallery/src/main/res/layout/activity_crop.xml
@@ -25,7 +25,8 @@
android:id="@+id/color_icon_container"
android:layout_width="40dp"
android:layout_height="40dp"
- android:layout_marginStart="8dp">
+ android:layout_marginStart="8dp"
+ android:background="@android:color/transparent">
-
-