### 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(...)
}
}
```