Update Log
v2.0.0 Upcoming Planned Next Version
- Improved performance and stability
- Add new blur components and features
- etc...
2026-01-19 v1.1.3 Latest Version
- Change
Java 17toJava 11 - Change the code to
Java 11syntax
2026-01-07 v1.1.2
- Change the version of
androidx.core:coreto1.12.0for better compatibility
2026-01-02 v1.1.1
- Fix the problem that
BlurViewGroupthrows an exception on some devices
2025-12-28 v1.1.0
- Change the module name of
QmBlurViewtocore - Change the module name of
Navigationtonavigation - Change the module name of
Transformtotransform - Change the module name of
Transformtotransform - Change the version of Cmake to
3.22.1
2025-12-24 v1.0.6
- Fix bug
2025-12-13 v1.0.5
- Fix: Modified BlurNative.java to use a static, shared ExecutorService
- Fix: Added a
setDownsampleFactor(float)API and a corresponding XML attributeapp:downsampleFactor - Update blur view components to handle overlapping scenarios
- Integrated Glide: New
com.qmdeve.blurview.transform.glide.BlurTransformation, Realizing Glide BitmapTransform The extension of ation supports BitmapPool to ensure efficient memory management and correct disk cache keys. - Integrated Picasso: Add
com.qmdeve.blurview.transform.picasso.BlurTransformationto implement the Transformation interface, Bitmap recycling has been properly handled. - Configurable blur effect: Both integration methods support the configuration of blur radius and rounded corner radius.
- Fixed the resource leakage problem of BlurNative, and avoided repeated instantiation by changing it to a static shared instance.
- Added an empty check to Glide's BitmapPool.get() call to enhance the robustness of the application.
- Improved error handling and debugging logic.
- Skip thread overhead for single-core devices in Java layer
- Replace VLA with heap allocation in native code to prevent stack overflow
- Remove unnecessary alpha channel clamping in blur calculations
- BaseBlurView now automatically detects SurfaceView and calls setZOrderMediaOverlay(true) to ensure proper Z-ordering for blurring.
- Adds informative logs when a SurfaceView is configured and provides warnings for potential issues (e.g., API level < 24).
- Checks if the SurfaceView's surface is valid before attempting PixelCopy to prevent crashes.
- Enhances error handling for PixelCopy failures, with retries for transient errors like ERROR_SOURCE_NO_DATA.
- Adds detailed logging for PixelCopy successes and failures to aid debugging.
- Performance: Move PixelCopy operations to dedicated handler thread
- Fully rewrote the measurement logic to correctly handle margin and size measurements for subviews
- Support for android:layout_gravity has been added, allowing subviews to be precisely positioned within a parent container
- The previous version's sub-view layout positioning function was limited, which has been resolved
- The issue of not supporting complex layout requirements has been resolved
- The measurement logic is not perfect, which has been resolved
- Enhancement: Check the LayoutParams type of the subview when measuring
- New: If it is not LayoutParams type, it will automatically convert and set back to sub-views.
- Improvement: Make sure that all sub-views use the correct LayoutParams type
- Improvement: Re-measure only when the available space is different from the current measurement size
- Optimization: avoid unnecessary re-measurement and improve performance
- Enhancement: More accurate handling of FILL_HORIZONTAL and FILL_VERTICAL Gravity
- Improvement: Corrected the calculation logic of the sub-view position
- Optimization: Safer boundary inspection
- Optimization: Ensure that the sub-view does not exceed the boundary of the parent container
2025-11-24 v1.0.4.7
- New addition of synchronized blur processing
- Reduce visual latency caused by asynchronous processing
- Enhance automatic processing of hardware bitmaps
2025-11-23 v1.0.4.6
- Ensure hardware bitmaps are converted to software bitmaps for blur processing.
- Add methods to check and disable hardware bitmaps in view hierarchy.
- Update blur logic and error handling for hardware bitmap scenarios.
- Introduce logging for debugging bitmap processing issues.
- Implement SurfaceView blur rendering using PixelCopy API.
- Extend BaseBlurView to handle SurfaceView snapshots and integrate into blur logic.
2025-11-18 v1.0.4.5
- Optimized rendering performance
- Optimize code logic
- Add
BlurViewGroupComponent - Add
BottomNavigationViewComponent - Add
BaseBlurViewclass - Add
BaseBlurViewGroupclass - delete
BlurUtilsclass - Fix: Ensure hardware bitmaps are converted to software bitmaps for blur processing
- Add methods to check and disable hardware bitmaps in view hierarchy
- Update blur logic and error handling for hardware bitmap scenarios
- Introduce logging for debugging bitmap processing issues
- Add handling for hardware bitmap compatibility in BaseBlurView
2025-11-07 v1.0.4.4
The main changes made to the BlurSwitchButtonView component in this update are as follows:
- Add
app:useSolidColorModeattribute to enable solid color mode. - Add
app:solidOnColorattribute - Add
app:solidOffColorattribute - Add
BlurSwitchButtonView.setUseSolidColorMode()method - Add
BlurSwitchButtonView.isUseSolidColorMode()method - Add
BlurSwitchButtonView.setSolidColors()method - Add
BlurSwitchButtonView.getSolidOnColor()method - Add
BlurSwitchButtonView.getSolidOffColor()method
2025-10-31 v1.0.4.3
- Fix bug
2025-10-26 v1.0.4.2
- Optimize the click animation of the
BlurButtonViewComponent
2025-10-25 v1.0.4.1
- Add
BlurFloatingButtonViewComponent
2025-10-25 v1.0.4
- Add
BlurSwitchButtonViewComponent
2025-10-24 v1.0.3.2
- Fix the bug in the
BlurTitleBarViewComponent
2025-10-24 v1.0.3.1
- Add
BlurFrameLayoutComponent
2025-10-23 v1.0.3
- Add
ProgressiveBlurViewComponent - Add
BlurTitlebarViewComponent - Change the Component
QmBlurViewtoBlurView - Change
QmBlurButtonViewtoBlurButtonView - Change the
qmBlurRadiusattribute of the BlurView Component toblurRadius - Change the
qmOverlayColorattribute of the BlurView Component tooverlayColor - Change the
qmCornerRadiusattribute of the BlurView Component tocornerRadius
2025-10-22 v1.0.2
- Add
QmBlurButtonViewComponent
2025-10-22 v1.0.1
- Change
minSdk 24tominSdk 21 Java 11changed toJava 8- Added
setCornerRadiusmethod - Add
BlurUtilsclass
2025-10-21 v1.0.0
- Initial release of QmBlurView Components library.
