### Complete BlurView Configuration Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Demonstrates a comprehensive setup of BlurView using a fluent API, including dynamic blur radius adjustment via a SeekBar. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get views BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); SeekBar radiusBar = findViewById(R.id.radiusSeekBar); // Get window background Drawable windowBackground = getWindow().getDecorView().getBackground(); // Configure blur with fluent API blurView.setupWith(target, 4f, true) // Scale: 4f, Apply noise: true .setFrameClearDrawable(windowBackground) .setBlurRadius(25f) .setOverlayColor(Color.argb(80, 0, 0, 0)) .setBlurAutoUpdate(true) .setBlurEnabled(true); // Dynamic blur radius adjustment radiusBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { float radius = progress / 4f; radius = Math.max(radius, 4f); // Minimum blur radius blurView.setBlurRadius(radius); } } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); } @Override protected void onDestroy() { super.onDestroy(); // No explicit cleanup needed; BlurView handles it } } ``` -------------------------------- ### Java Code for BlurView Setup Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Example of setting up BlurView to target a BlurTarget in Java code. This involves finding both views and calling setupWith. ```java BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); blurView.setupWith(target) .setBlurRadius(20f); ``` -------------------------------- ### BlurView.setupWith Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Starts the blur configuration process by associating the BlurView with a target view. This is the primary entry point for applying blur effects. ```APIDOC ## BlurView.setupWith ### Description Starts the blur configuration process by associating the BlurView with a target view. This is the primary entry point for applying blur effects. ### Method Java ### Endpoint N/A (Android SDK Method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example ```java BlurView blurView = findViewById(R.id.blurView); BlurTarget blurTarget = findViewById(R.id.target); blurView.setupWith(blurTarget); ``` ### Response #### Success Response N/A (Method returns void or BlurViewFacade) #### Response Example N/A ``` -------------------------------- ### Chainable BlurView Configuration Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Demonstrates fluent chaining of BlurView configuration methods, where each method returns a BlurViewFacade instance. ```java blurView.setupWith(target) // Returns BlurViewFacade .setBlurRadius(25f) // Returns BlurViewFacade .setOverlayColor(Color.TRANSPARENT) // Returns BlurViewFacade .setFrameClearDrawable(drawable) // Returns BlurViewFacade .setBlurAutoUpdate(true) // Returns BlurViewFacade .setBlurEnabled(true); // Returns BlurViewFacade ``` -------------------------------- ### Setup BlurView with Target (Default Settings) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Initializes the BlurView with a BlurTarget using default scale factor (4f), noise enabled, and an automatically selected blur algorithm. This is the simplest setup method. ```java public BlurViewFacade setupWith(@NonNull BlurTarget rootView) ``` ```java blurView.setupWith(target); blurView.setBlurRadius(20f); ``` -------------------------------- ### Basic Blur Setup Source: https://github.com/dimezis/blurview/blob/master/_autodocs/README.md Sets up the BlurView to blur a target view and configures the blur radius. Use this for a straightforward blur implementation. ```java BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); blurView.setupWith(target) .setBlurRadius(25f); ``` -------------------------------- ### RenderScriptBlur Implementation Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurAlgorithm.md An example implementation of the BlurAlgorithm interface using RenderScript for blur processing. It includes initialization, blur application, resource management, and configuration details. ```java public class RenderScriptBlur implements BlurAlgorithm { public RenderScriptBlur(@NonNull Context context) { renderScript = RenderScript.create(context); blurScript = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript)); } @Override public Bitmap blur(@NonNull Bitmap bitmap, float blurRadius) { // Blur implementation using RenderScript // ... return bitmap; } @Override public void destroy() { blurScript.destroy(); renderScript.destroy(); if (outAllocation != null) { outAllocation.destroy(); } } @Override public boolean canModifyBitmap() { return true; } @Override public Bitmap.Config getSupportedBitmapConfig() { return Bitmap.Config.ARGB_8888; } @Override public void render(@NonNull Canvas canvas, @NonNull Bitmap bitmap) { canvas.drawBitmap(bitmap, 0f, 0f, paint); } } ``` -------------------------------- ### BlurView Java Integration Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Example of setting up BlurView with a BlurTarget in an Activity using Java. This demonstrates how to link the blur view to its target and set the blur radius programmatically. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); blurView.setupWith(target) .setBlurRadius(25f); } } ``` -------------------------------- ### Complete Import Statements for BlurView Setup Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Import all required classes for a complete BlurView setup, including custom algorithms and facades. ```java import eightbitlab.com.blurview.BlurView; import eightbitlab.com.blurview.BlurTarget; import eightbitlab.com.blurview.BlurViewFacade; import eightbitlab.com.blurview.BlurAlgorithm; import eightbitlab.com.blurview.RenderScriptBlur; ``` -------------------------------- ### BlurView.setupWith (full control) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Provides full control over the blur setup by allowing a custom blur algorithm, blur radius, and auto-update setting. ```APIDOC ## BlurView.setupWith (full control) ### Description Provides full control over the blur setup by allowing a custom blur algorithm, blur radius, and auto-update setting. ### Method Java ### Endpoint N/A (Android SDK Method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example ```java BlurView blurView = findViewById(R.id.blurView); BlurTarget blurTarget = findViewById(R.id.target); BlurAlgorithm blurAlgorithm = new RenderScriptBlur(context); float blurRadius = 10f; boolean autoUpdate = true; blurView.setupWith(blurTarget, blurAlgorithm, blurRadius, autoUpdate); ``` ### Response #### Success Response N/A (Method returns void or BlurViewFacade) #### Response Example N/A ``` -------------------------------- ### Basic Java Setup for BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Initializes and sets up BlurView with a target view using default configurations. This is the simplest way to apply blur to a view. ```java import eightbitlab.com.blurview.BlurView; import eightbitlab.com.blurview.BlurTarget; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); // Simple setup with default configuration blurView.setupWith(target) .setBlurRadius(25f); } } ``` -------------------------------- ### BlurViewFacade Method Chaining Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurViewFacade.md Demonstrates fluent method chaining with BlurViewFacade to configure blur settings, including setting an overlay color. ```java blurView.setupWith(target) .setBlurRadius(25f) .setFrameClearDrawable(windowBackground) .setOverlayColor(Color.argb(80, 0, 0, 0)) .setBlurAutoUpdate(true); // Later, reconfigure individual settings blurView.setBlurRadius(15f); blurView.setBlurEnabled(false); blurView.setBlurEnabled(true); ``` -------------------------------- ### Setup BlurView with Content Source Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Initializes and configures BlurView instances in an Activity. Ensure the BlurTarget and BlurView IDs match your layout file. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView topBlur = findViewById(R.id.topBlur); BlurView bottomBlur = findViewById(R.id.bottomBlur); Drawable windowBackground = getWindow().getDecorView().getBackground(); // Setup both blur views with same target topBlur.setupWith(target) .setFrameClearDrawable(windowBackground) .setBlurRadius(25f); bottomBlur.setupWith(target) .setFrameClearDrawable(windowBackground) .setBlurRadius(25f); } } ``` -------------------------------- ### Complete BlurView Setup with BlurTarget Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md This example shows how to set up a BlurView to blur the background of a specific BlurTarget in an Android Activity layout. The BlurTarget contains the content to be blurred, and the BlurView is configured to apply the blur effect to it. ```xml ``` -------------------------------- ### Complete RenderScriptBlur Usage Example Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/RenderScriptBlur.md Demonstrates how to create and set up a RenderScriptBlur algorithm with a BlurView. Includes updating the blur radius and cleaning up the algorithm when it's no longer needed. ```java RenderScriptBlur blurAlgorithm = new RenderScriptBlur(this); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); blurView.setupWith(target, blurAlgorithm, 4f, true) .setBlurRadius(20f); radiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { blurView.setBlurRadius(progress / 4f); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); @Override protected void onDestroy() { super.onDestroy(); blurAlgorithm.destroy(); } ``` -------------------------------- ### Primary BlurView Setup Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Use these methods to initialize BlurView with a target view. Overloads allow specifying blur radius and auto-update behavior. ```java blurView.setupWith(target); blurView.setupWith(target, 4f, true); blurView.setupWith(target, algorithm, 4f, true); ``` -------------------------------- ### Example BlurView XML Layout Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Demonstrates how to apply the app:blurOverlayColor attribute in an XML layout file to set a color overlay on the blurred content. ```xml ``` -------------------------------- ### Setup BlurView with Scale Factor and Noise Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Configures BlurView using setupWith(BlurTarget, float, boolean), allowing control over the downscaling factor before blurring and whether to apply a noise texture. ```java BlurView.setupWith(BlurTarget target, float scaleFactor, boolean applyNoise) ``` -------------------------------- ### Setup BlurView with Full Control Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Provides complete configuration for BlurView via setupWith(BlurTarget, BlurAlgorithm, float, boolean), enabling custom blur algorithms, scale factors, and noise settings. Note that the algorithm parameter is ignored on API 31+. ```java BlurView.setupWith(BlurTarget target, BlurAlgorithm algorithm, float scaleFactor, boolean applyNoise) ``` -------------------------------- ### Use Custom Blur Algorithm with BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md This example demonstrates how to integrate a custom blur algorithm with BlurView. It involves creating an instance of the custom algorithm and passing it to the `setupWith` method. Note that this is ignored on API 31+. ```java public class MainActivity extends AppCompatActivity { private CustomBlurAlgorithm blurAlgorithm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); // Create custom algorithm blurAlgorithm = new CustomBlurAlgorithm(); // Use custom algorithm (ignored on API 31+) blurView.setupWith(target, blurAlgorithm, 4f, true) .setBlurRadius(20f); } @Override protected void onDestroy() { super.onDestroy(); // Clean up resources if (blurAlgorithm != null) { blurAlgorithm.destroy(); } } } ``` -------------------------------- ### Setup BlurView with BlurTarget in Java Source: https://github.com/dimezis/blurview/blob/master/README.md Initialize BlurView by calling setupWith() on a BlurTarget. Optionally set a frame clear drawable and blur radius. Consider a smaller scale factor on API 31+ for better precision. ```Java float radius = 20f; View decorView = getWindow().getDecorView(); // A view hierarchy you want blur. The BlurTarget can't include the BlurView that targets it. BlurTarget target = findViewById(R.id.target); // Optional: // Set the drawable to draw in the beginning of each blurred frame. // Can be used in case your layout has a lot of transparent space and your content // gets a low alpha value after blur is applied. Drawable windowBackground = decorView.getBackground(); // Optionally pass a custom BlurAlgorithm and scale factor as additional parameters. // You might want to set a smaller scale factor on API 31+ to have a more precise blur with less flickering. blurView.setupWith(target) .setFrameClearDrawable(windowBackground) // Optional. Useful when your root has a lot of transparent background, which results in semi-transparent blurred content. This will make the background opaque .setBlurRadius(radius) ``` -------------------------------- ### Java Setup with Window Background Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Configures BlurView using the window's background as the clear drawable for the blur effect. Allows for more integrated blurring with the activity's overall theme. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); // Get window background to use as blur clear drawable Drawable windowBackground = getWindow().getDecorView().getBackground(); // Configure blur with background blurView.setupWith(target) .setFrameClearDrawable(windowBackground) .setBlurRadius(25f) .setOverlayColor(Color.argb(100, 0, 0, 0)); } } ``` -------------------------------- ### XML Layout for BlurTarget Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Example of how to include BlurTarget in an XML layout file. Place your content views inside the BlurTarget tag. ```xml ``` -------------------------------- ### Java Setup with Custom Scale Factor Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Applies blur with a custom scale factor for performance tuning and optionally enables noise for a different visual effect. Higher scale factors result in faster but potentially less precise blurring. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); // Higher scale factor for faster but less precise blur float scaleFactor = 6f; // 6x downscaling blurView.setupWith(target, scaleFactor, true) // Apply noise .setBlurRadius(15f); } } ``` -------------------------------- ### Setup BlurView with Target, Scale, and Noise (Auto Algorithm) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Sets up the BlurView using a BlurTarget, scale factor, and noise setting, automatically selecting the blur algorithm based on the API version. This is a convenient option for most use cases. ```java public BlurViewFacade setupWith(@NonNull BlurTarget rootView, float scaleFactor, boolean applyNoise) ``` ```java blurView.setupWith(target, 4f, true) .setBlurRadius(25f); ``` -------------------------------- ### BlurView Typical Usage Source: https://github.com/dimezis/blurview/blob/master/_autodocs/types.md Demonstrates typical usage of BlurView for applying blur effects. This example shows how to set the blur radius and overlay color using method chaining. ```java blurView.setupWith(target) .setBlurRadius(20f) .setOverlayColor(color); ``` -------------------------------- ### Setup BlurView with BlurTarget in Java Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Initializes BlurTarget and BlurView from XML layout and applies a blur effect to the BlurView, targeting the BlurTarget. The blur radius is set to 25f. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); BlurView bottomSheetBlur = findViewById(R.id.bottomSheetBlur); // Setup blur for bottom sheet bottomSheetBlur.setupWith(target) .setBlurRadius(25f); } } ``` -------------------------------- ### Get Supported Bitmap Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/RenderScriptBlur.md Returns the required bitmap configuration for RenderScript, which is always ARGB_8888. ```java blur.getSupportedBitmapConfig(); ``` -------------------------------- ### Complete Activity Example with BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md This snippet shows how to initialize and configure BlurView within an Android Activity. It demonstrates setting up the blur effect on a target view, applying an overlay color, and enabling dynamic updates. A SeekBar is included to control the blur radius in real-time. ```java import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.SeekBar; import android.graphics.drawable.Drawable; import android.graphics.Color; import eightbitlab.com.blurview.BlurView; import eightbitlab.com.blurview.BlurTarget; public class MainActivity extends AppCompatActivity { private BlurView blurView; private SeekBar radiusSeekBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get views BlurTarget target = findViewById(R.id.target); blurView = findViewById(R.id.blurView); radiusSeekBar = findViewById(R.id.radiusSeekBar); // Get window background Drawable windowBackground = getWindow().getDecorView().getBackground(); // Configure blur float initialRadius = 25f; blurView.setupWith(target, 4f, true) .setFrameClearDrawable(windowBackground) .setBlurRadius(initialRadius) .setOverlayColor(Color.argb(100, 0, 0, 0)) .setBlurAutoUpdate(true) .setBlurEnabled(true); // Setup SeekBar radiusSeekBar.setProgress((int) (initialRadius * 4)); radiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { float radius = progress / 4f; radius = Math.max(radius, 4f); blurView.setBlurRadius(radius); } } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); } } ``` -------------------------------- ### BlurView Setup with BlurTarget in Java Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md This Java code demonstrates how to programmatically set up a BlurView to blur the background of a BlurTarget. It finds the views by their IDs and configures the BlurView with a blur radius and auto-update enabled. ```java BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); blurView.setupWith(target) .setBlurRadius(25f) .setBlurAutoUpdate(true); ``` -------------------------------- ### Get Supported Bitmap Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurAlgorithm.md Returns the bitmap configuration (color format) supported by the blur algorithm. BlurView uses this to create compatible internal bitmaps. ```java @Override public Bitmap.Config getSupportedBitmapConfig() { return Bitmap.Config.ARGB_8888; // RenderScript requires ARGB_8888 } ``` -------------------------------- ### Animate Blur Radius Increase Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md This example demonstrates how to animate the blur radius of a BlurView. A button click triggers an animation that eventually sets the blur radius to a specified value. ```java public class MainActivity extends AppCompatActivity { private BlurView blurView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BlurTarget target = findViewById(R.id.target); blurView = findViewById(R.id.blurView); blurView.setupWith(target) .setBlurRadius(5f); // Animate blur radius increase findViewById(R.id.increaseBlurButton).setOnClickListener(v -> { blurView.animate() .withEndAction(() -> blurView.setBlurRadius(25f)) .start(); }); } } ``` -------------------------------- ### Setup BlurView with Target, Algorithm, Scale, and Noise Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Configures the BlurView with a specific blur target, algorithm, scale factor, and noise setting. Use this for fine-grained control over the blur effect. The algorithm parameter is ignored on API 31+ where RenderEffect is used. ```java public BlurViewFacade setupWith(@NonNull BlurTarget target, BlurAlgorithm algorithm, float scaleFactor, boolean applyNoise) ``` ```java BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); RenderScriptBlur algorithm = new RenderScriptBlur(context); blurView.setupWith(target, algorithm, 4f, true) .setBlurRadius(20f) .setOverlayColor(Color.TRANSPARENT); ``` -------------------------------- ### Set Blur Radius Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurViewFacade.md Use setBlurRadius to define the blur radius. Note that the actual blur applied is influenced by a scale factor, typically set during setupWith. This example also shows dynamic adjustment via a SeekBar. ```java // Set up with default scale factor (4f) blurView.setupWith(target) .setBlurRadius(5f); // Actual blur: 5 * 4 = 20 ``` ```java SeekBar radiusSeekBar = findViewById(R.id.radiusSeekBar); radiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { blurView.setBlurRadius(progress / 4f); // Progress 0-100 -> blur radius 0-25 } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); ``` -------------------------------- ### Faster Blur with Larger Scale Factor Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Applies a blur effect with a larger scale factor for improved performance, suitable for animations where precision is less critical. This example uses an 8x scale factor and disables noise. ```java // Faster but less precise blur - good for animations BlurView blurView = findViewById(R.id.blurView); BlurTarget target = findViewById(R.id.target); blurView.setupWith(target, 8f, false) // 8x scale, no noise .setBlurRadius(5f); ``` -------------------------------- ### BlurView.setupWith (with parameters) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Sets up the BlurView with a target view and allows specifying blur radius and whether to enable auto-update. ```APIDOC ## BlurView.setupWith (with parameters) ### Description Sets up the BlurView with a target view and allows specifying blur radius and whether to enable auto-update. ### Method Java ### Endpoint N/A (Android SDK Method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example ```java BlurView blurView = findViewById(R.id.blurView); BlurTarget blurTarget = findViewById(R.id.target); float blurRadius = 10f; boolean autoUpdate = true; blurView.setupWith(blurTarget, blurRadius, autoUpdate); ``` ### Response #### Success Response N/A (Method returns void or BlurViewFacade) #### Response Example N/A ``` -------------------------------- ### setupWith(BlurTarget rootView) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Sets up the BlurView with a BlurTarget using default settings for scale factor, noise application, and blur algorithm. ```APIDOC ## setupWith(BlurTarget rootView) ### Description Sets up the BlurView with a BlurTarget using default settings. ### Method public BlurViewFacade setupWith(@NonNull BlurTarget rootView) ### Parameters #### Path Parameters - **rootView** (BlurTarget) - Required - The BlurTarget containing the content to blur ### Defaults Used - Scale factor: `DEFAULT_SCALE_FACTOR` (4f) - Apply noise: true - Algorithm: Automatically selected based on API level ### Returns `BlurViewFacade` - For method chaining and further configuration ### Request Example ```java blurView.setupWith(target); blurView.setBlurRadius(20f); ``` ``` -------------------------------- ### setupWith(BlurTarget rootView, float scaleFactor, boolean applyNoise) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Sets up the BlurView with a BlurTarget and automatically picks the blur algorithm based on API version. This is a convenient method for common use cases. ```APIDOC ## setupWith(BlurTarget rootView, float scaleFactor, boolean applyNoise) ### Description Sets up the BlurView with a BlurTarget and automatically picks the blur algorithm based on API version. ### Method public BlurViewFacade setupWith(@NonNull BlurTarget rootView, float scaleFactor, boolean applyNoise) ### Parameters #### Path Parameters - **rootView** (BlurTarget) - Required - The BlurTarget containing the content to blur - **scaleFactor** (float) - Required - Scale factor to downscale the view snapshot (e.g., 4f for 4x downscaling) - **applyNoise** (boolean) - Required - Whether to apply blue noise texture for more natural appearance ### Returns `BlurViewFacade` - For method chaining and further configuration ### Implementation Details On API 31+, uses RenderEffect for hardware blur. On older APIs, automatically instantiates RenderScriptBlur. ### Request Example ```java blurView.setupWith(target, 4f, true) .setBlurRadius(25f); ``` ``` -------------------------------- ### setupWith(BlurTarget target, BlurAlgorithm algorithm, float scaleFactor, boolean applyNoise) Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Sets up the BlurView with a specific BlurTarget, blur algorithm, scale factor, and noise application setting. This method allows for fine-grained control over the blurring process. ```APIDOC ## setupWith(BlurTarget target, BlurAlgorithm algorithm, float scaleFactor, boolean applyNoise) ### Description Sets up the BlurView with a specific BlurTarget, blur algorithm, scale factor, and noise application setting. ### Method public BlurViewFacade setupWith(@NonNull BlurTarget target, BlurAlgorithm algorithm, float scaleFactor, boolean applyNoise) ### Parameters #### Path Parameters - **target** (BlurTarget) - Required - The BlurTarget containing the content to blur - **algorithm** (BlurAlgorithm) - Optional - The blur algorithm to use. Ignored on API >= 31 where RenderEffect is used. If null, a default is selected based on API level - **scaleFactor** (float) - Required - Scale factor to downscale the view snapshot before blurring (e.g., 4f for 4x downscaling). Helps achieve stronger blur and better performance at the expense of precision - **applyNoise** (boolean) - Required - Whether to apply blue noise texture over the blurred content for more natural appearance ### Returns `BlurViewFacade` - For method chaining and further configuration ### Request Example ```java BlurTarget target = findViewById(R.id.target); BlurView blurView = findViewById(R.id.blurView); RenderScriptBlur algorithm = new RenderScriptBlur(context); blurView.setupWith(target, algorithm, 4f, true) .setBlurRadius(20f) .setOverlayColor(Color.TRANSPARENT); ``` ``` -------------------------------- ### BlurView Class Source: https://github.com/dimezis/blurview/blob/master/_autodocs/types.md The main FrameLayout that applies blur effects to underlying content. It extends Android's FrameLayout and provides methods for setup and configuration. ```java public class BlurView extends FrameLayout ``` -------------------------------- ### Enable/Disable Blur Effect in BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Toggles the blur effect on or off entirely. Use this to temporarily disable blur, for example, during certain animations or when blur is not needed. ```java public BlurViewFacade setBlurEnabled(boolean enabled) ``` ```java blurView.setBlurEnabled(false); // Disable blur temporarily ``` -------------------------------- ### Deprecated RenderScriptBlur Class Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md The RenderScriptBlur class is deprecated starting from Android 12+ due to RenderScript deprecation. It is still supported for API < 31 compatibility. ```java @Deprecated public class RenderScriptBlur implements BlurAlgorithm ``` -------------------------------- ### BlurAlgorithm Source: https://github.com/dimezis/blurview/blob/master/_autodocs/types.md Interface for implementing custom blur algorithms. Can be passed to BlurView.setupWith() for custom blur processing (on API < 31; ignored on API 31+). ```APIDOC ## Interface BlurAlgorithm ### Description Interface for implementing custom blur algorithms. Can be passed to `BlurView.setupWith()` for custom blur processing (on API < 31; ignored on API 31+). ### Methods - `blur(Bitmap, float)` — Apply blur to bitmap - `destroy()` — Free resources - `canModifyBitmap()` — Returns true if modifies bitmap in-place - `getSupportedBitmapConfig()` — Returns required bitmap format - `render(Canvas, Bitmap)` — Render blurred bitmap to canvas ### Implemented by - `RenderScriptBlur` — Uses RenderScript for GPU blur ### Source `library/src/main/java/eightbitlab/com/blurview/BlurAlgorithm.java` ### Custom Implementation Example ```java public class CustomBlurAlgorithm implements BlurAlgorithm { @Override public Bitmap blur(Bitmap bitmap, float blurRadius) { // Custom blur implementation return bitmap; } @Override public void destroy() { // Cleanup } @Override public boolean canModifyBitmap() { return true; } @Override public Bitmap.Config getSupportedBitmapConfig() { return Bitmap.Config.ARGB_8888; } @Override public void render(Canvas canvas, Bitmap bitmap) { canvas.drawBitmap(bitmap, 0, 0, paint); } } ``` ``` -------------------------------- ### Layout with Rounded Background for BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Defines a BlurView with a custom rounded background drawable. This setup is used in conjunction with Java code to achieve rounded corners for the blur effect. ```xml ``` -------------------------------- ### BlurView Constructors Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Provides information on how to instantiate a BlurView using different constructors. ```APIDOC ## BlurView(Context context) ### Description Creates a new BlurView with the given context. ### Parameters #### Path Parameters - **context** (Context) - Required - The context used to create the view ## BlurView(Context context, AttributeSet attrs) ### Description Creates a new BlurView with context and attributes from XML layout. ### Parameters #### Path Parameters - **context** (Context) - Required - The context used to create the view - **attrs** (AttributeSet) - Required - The attributes from the XML layout ## BlurView(Context context, AttributeSet attrs, int defStyleAttr) ### Description Creates a new BlurView with context, attributes, and default style attribute. ### Parameters #### Path Parameters - **context** (Context) - Required - The context used to create the view - **attrs** (AttributeSet) - Required - The attributes from the XML layout - **defStyleAttr** (int) - Required - The default style attribute resource ID ``` -------------------------------- ### Layout with Multiple BlurViews Source: https://github.com/dimezis/blurview/blob/master/_autodocs/usage-examples.md Demonstrates setting up multiple BlurView instances in a layout, sharing a common content source. This is useful for applying blur effects to different UI elements like top bars and navigation bars. ```xml ``` -------------------------------- ### Create RenderScriptBlur Algorithm Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Instantiate a BlurAlgorithm that uses RenderScript for blurring. Requires a Context object. ```java new RenderScriptBlur(context) ``` -------------------------------- ### Chained Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Demonstrates method chaining to configure multiple BlurView properties, including blur radius, frame clear drawable, overlay color, and auto-update. ```java blurView.setupWith(target) .setBlurRadius(20f) .setFrameClearDrawable(background) .setOverlayColor(color) .setBlurAutoUpdate(true); ``` -------------------------------- ### RenderScriptBlur Constructor and Methods Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Methods for the RenderScriptBlur algorithm implementation. ```APIDOC ## RenderScriptBlur Methods ### Description Methods for the RenderScriptBlur algorithm implementation. ### Constructor - **RenderScriptBlur(Context context)** - Purpose: Create blur algorithm ### Methods - **blur** `blur(Bitmap bitmap, float blurRadius)` - Purpose: Apply blur using RenderScript - Return: Bitmap - **canModifyBitmap** `canModifyBitmap()` - Purpose: Returns `true` (modifies in-place) - Return: boolean - **destroy** `destroy()` - Purpose: Free RenderScript resources - Return: void - **getSupportedBitmapConfig** `getSupportedBitmapConfig()` - Purpose: Returns `ARGB_8888` - Return: Bitmap.Config - **render** `render(Canvas canvas, Bitmap bitmap)` - Purpose: Draw blurred bitmap to canvas - Return: void ``` -------------------------------- ### Lightweight Blur Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Sets up BlurView for performance priority with a large scale factor and no noise. Uses a minimal blur radius. ```java blurView.setupWith(target, 8f, false) // Large scale factor, no noise .setBlurRadius(5f); ``` -------------------------------- ### BlurTarget Constructor with Context, Attributes, Style, and Resource Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Creates a new BlurTarget instance with context, attributes, default style, and a default style resource. Requires API 21+. ```java @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public BlurTarget(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) ``` -------------------------------- ### Custom Blur Algorithm Implementation Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Implement the BlurAlgorithm interface to provide a custom blur processing logic. This includes methods for blurring, resource management, and bitmap support. ```java // Implement this interface for custom blur public class CustomBlur implements BlurAlgorithm { public Bitmap blur(Bitmap bitmap, float blurRadius) { } public void destroy() { } public boolean canModifyBitmap() { } public Bitmap.Config getSupportedBitmapConfig() { } public void render(Canvas canvas, Bitmap bitmap) { } } ``` -------------------------------- ### BlurAlgorithm Methods Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Methods for implementing custom blur algorithms. ```APIDOC ## BlurAlgorithm Methods ### Description Methods for implementing custom blur algorithms. ### Methods - **blur** `blur(Bitmap bitmap, float radius)` - Purpose: Apply blur - Return: Bitmap - Required: Yes - Example: `algorithm.blur(bitmap, 20f)` - **canModifyBitmap** `canModifyBitmap()` - Purpose: In-place modify? - Return: boolean - Required: Yes - Example: `if (algo.canModifyBitmap())` - **destroy** `destroy()` - Purpose: Free resources - Return: void - Required: Yes - Example: `algorithm.destroy()` - **getSupportedBitmapConfig** `getSupportedBitmapConfig()` - Purpose: Required format - Return: Bitmap.Config - Required: Yes - Example: `Config cfg = algo.getSupportedBitmapConfig()` - **render** `render(Canvas, Bitmap)` - Purpose: Render bitmap - Return: void - Required: Yes - Example: `algorithm.render(canvas, bitmap)` ``` -------------------------------- ### BlurAlgorithm Interface Source: https://github.com/dimezis/blurview/blob/master/_autodocs/types.md Interface for implementing custom blur algorithms. It can be passed to BlurView.setupWith() for custom blur processing on older Android versions. ```java public interface BlurAlgorithm ``` -------------------------------- ### Configure Semi-transparent Blur Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Sets up the blur effect with a specified radius and an overlay color to control transparency. ```java blurView.setupWith(target) .setBlurRadius(25f) .setOverlayColor(Color.argb(80, 0, 0, 0)); ``` -------------------------------- ### Initialize RenderScriptBlur Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/RenderScriptBlur.md Creates a new RenderScriptBlur instance. Resources are allocated immediately upon creation. ```java Context context = getApplicationContext(); RenderScriptBlur blurAlgorithm = new RenderScriptBlur(context); ``` -------------------------------- ### RenderScriptBlur Constructor Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/RenderScriptBlur.md Creates a new RenderScriptBlur instance, initializing the RenderScript context and blur script. Resources are allocated immediately upon creation. ```APIDOC ## RenderScriptBlur(Context context) ### Description Creates a new RenderScriptBlur instance. ### Method Constructor ### Parameters #### Path Parameters - **context** (Context) - Required - The context used to create the RenderScript instance ### Initialization Creates the RenderScript context and ScriptIntrinsicBlur script. Resources are allocated immediately. ### Example ```java Context context = getApplicationContext(); RenderScriptBlur blurAlgorithm = new RenderScriptBlur(context); blurView.setupWith(target, blurAlgorithm, 4f, true) .setBlurRadius(20f); ``` ``` -------------------------------- ### RenderNode Initialization on API 31+ Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Demonstrates the creation of a RenderNode for capturing child drawing operations on Android API 31 and above. This is internal to BlurTarget. ```java new RenderNode("BlurViewHost node") ``` -------------------------------- ### BlurTarget Constructor with Context, Attributes, and Style Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Creates a new BlurTarget instance with context, attributes, and a default style attribute. Allows for custom styling. ```java public BlurTarget(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) ``` -------------------------------- ### Basic Import Statements for BlurView Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Import the core BlurView and BlurTarget classes for basic usage. ```java import eightbitlab.com.blurview.BlurView; import eightbitlab.com.blurview.BlurTarget; ``` -------------------------------- ### getSupportedBitmapConfig() Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurAlgorithm.md Returns the bitmap configuration (color format) supported by this blur algorithm. BlurView uses this to create compatible internal bitmaps. ```APIDOC ## getSupportedBitmapConfig() ### Description Returns the bitmap configuration (color format) supported by this blur algorithm. ### Returns * **Bitmap.Config** — The bitmap configuration this algorithm supports. Common values: - `Bitmap.Config.ARGB_8888` — 32-bit color with alpha channel - `Bitmap.Config.RGB_565` — 16-bit color without alpha - `Bitmap.Config.ARGB_4444` — 16-bit color with alpha ### Implications BlurView will create internal bitmaps using this configuration to ensure compatibility with the blur algorithm. ### Example ```java @Override public Bitmap.Config getSupportedBitmapConfig() { return Bitmap.Config.ARGB_8888; // RenderScript requires ARGB_8888 } ``` ``` -------------------------------- ### Package Structure Source: https://github.com/dimezis/blurview/blob/master/_autodocs/README.md Lists the public and internal classes within the BlurView package. ```plaintext eightbitlab.com.blurview ├── [PUBLIC] BlurView ├── [PUBLIC] BlurTarget ├── [PUBLIC] BlurViewFacade (interface) ├── [PUBLIC] BlurAlgorithm (interface) ├── [PUBLIC] BlurController (interface) ├── [PUBLIC] RenderScriptBlur ├── [INTERNAL] PreDrawBlurController ├── [INTERNAL] RenderNodeBlurController ├── [INTERNAL] NoOpController ├── [INTERNAL] BlurViewCanvas ├── [INTERNAL] SizeScaler └── [INTERNAL] Noise ``` -------------------------------- ### BlurView Constructors Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Provides the different ways to instantiate a BlurView object, accepting Context and optional attributes. ```java BlurView(Context context) BlurView(Context context, AttributeSet attrs) BlurView(Context context, AttributeSet attrs, int defStyleAttr) ``` -------------------------------- ### Import Statements with Custom Blur Algorithm Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/overview.md Import necessary classes when using a custom blur algorithm with BlurView. ```java import eightbitlab.com.blurview.BlurView; import eightbitlab.com.blurview.BlurTarget; import eightbitlab.com.blurview.BlurAlgorithm; import eightbitlab.com.blurview.RenderScriptBlur; ``` -------------------------------- ### BlurView Constructor with Context, Attributes, and Style Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Creates a new BlurView instance with Context, AttributeSet, and a default style attribute. ```java public BlurView(Context context, AttributeSet attrs, int defStyleAttr) ``` -------------------------------- ### BlurTarget Constructors Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Shows the available constructors for BlurTarget, including an API 21+ specific version. ```java BlurTarget(Context context) BlurTarget(Context context, AttributeSet attrs) BlurTarget(Context context, AttributeSet attrs, int defStyleAttr) BlurTarget(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) // API 21+ ``` -------------------------------- ### BlurTarget Constructor with Context and Attributes Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurTarget.md Creates a new BlurTarget instance using the provided Android Context and optional XML attributes. Useful for inflation from layouts. ```java public BlurTarget(@NonNull Context context, @Nullable AttributeSet attrs) ``` -------------------------------- ### Dark Overlay with Blur Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Applies a dark overlay with significant transparency along with a blur effect. Sets a moderate blur radius. ```java blurView.setupWith(target) .setOverlayColor(Color.argb(150, 0, 0, 0)) .setBlurRadius(20f); ``` -------------------------------- ### BlurTarget Constructors Source: https://github.com/dimezis/blurview/blob/master/_autodocs/methods-reference.md Constructors for the BlurTarget class. ```APIDOC ## BlurTarget Constructors ### Description Constructors for the BlurTarget class. ### Constructors - **BlurTarget(Context)** - Purpose: Basic constructor - Source: public - **BlurTarget(Context, AttributeSet)** - Purpose: XML constructor - Source: public - **BlurTarget(Context, AttributeSet, int)** - Purpose: With style attr - Source: public - **BlurTarget(Context, AttributeSet, int, int)** - Purpose: Full constructor (API 21+) - Source: public ### Inherited Methods - **(All FrameLayout methods)** - Purpose: Full FrameLayout API - Source: inherited ``` -------------------------------- ### High Quality Blur Configuration Source: https://github.com/dimezis/blurview/blob/master/_autodocs/configuration.md Configures BlurView for precision priority with a small scale factor and noise applied. Uses a larger blur radius for higher quality. ```java blurView.setupWith(target, 2f, true) // Small scale factor, with noise .setBlurRadius(15f); ``` -------------------------------- ### BlurView Constructor with Context and Attributes Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurView.md Creates a new BlurView instance using the provided Context and AttributeSet, typically from XML layouts. ```java public BlurView(Context context, AttributeSet attrs) ``` -------------------------------- ### API Level Controller Selection Logic Source: https://github.com/dimezis/blurview/blob/master/_autodocs/api-reference/BlurController.md Illustrates how BlurView automatically selects the appropriate blur controller based on the device's API level, favoring hardware rendering on newer APIs. ```java BlurView.setupWith() { if (BlurTarget.canUseHardwareRendering) { // API 31+ blurController = new RenderNodeBlurController(...) } else { // API 30 and below blurController = new PreDrawBlurController(...) } } ```