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"> - -