Android 使用液态玻璃(LiquidGlass)效果,真实的折射和色散效果


特性

  • 真实的的液体玻璃效果 - 基于物理的折射色散效果
  • 高度可定制 - 支持调整圆角、折射参数、色散、色调等

要求

  • Android API 33 及以上(Android 13),以获得完整的玻璃效果

Demo 示例

下载 Demo

GitHub

GitHub仓库


快速集成

添加仓库

在项目根目录的settings.gradle添加仓库:

gradle 复制代码
1dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
       mavenCentral()
       maven { url 'https://jitpack.io' }
  }
}

添加依赖

在模块的build.gradle添加依赖项:

gradle 复制代码
dependencies {
   implementation 'com.github.QmDeve:AndroidLiquidGlassView:v0.0.1-alpha02'
}

如何使用

XML布局

xml 复制代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 内容容器 -->
    <FrameLayout
        android:id="@+id/content_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:id="@+id/images"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:src="@drawable/image" />

        </RelativeLayout>
    </FrameLayout>

    <!-- 液态玻璃视图 -->
    <com.qmdeve.liquidglass.widget.LiquidGlassView
        android:id="@+id/liquidGlassView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true" />
</RelativeLayout>

绑定采样源

java 复制代码
ViewGroup content = findViewById(R.id.content_container);
LiquidGlassView liquidGlassView = findViewById(R.id.liquidGlassView);

// 绑定采样源
liquidGlassView.bind(content);

API Reference

方法 描述 默认值
bind(ViewGroup source) 绑定采样源 -
setCornerRadius(float px) 设置圆角半径 (px) (0dp-99dp) 40dp
setRefractionHeight(float px) 设置折射高度 (px) (12dp-50dp) 20dp
setRefractionOffset(float px) 设置折射偏移 (px) (20dp-120dp) 70dp
setTintColorRed(float red) 设置色调(R) (0f-1f) 1.0f
setTintColorGreen(float green) 设置色调(G) (0f-1f) 1.0f
setTintColorBlue(float blue) 设置色调(G) (0f-1f) 1.0f
setTintAlpha(float alpha) 设置色调透明度 (0f-1f) 0.0f
setDispersion(float dispersion) 设置色散效果 (0f-1f) 0.5f
setBlurRadius(float radius) 设置模糊半径 (0dp-50dp) 0f
setDraggable(boolean enable) 开启和关闭拖动 true

效果说明

Android 13+ 设备上该库可以呈现完整的液态玻璃效果包括:

  • 真实且可调节的折射效果
  • 真实且可调节的色散效果
  • 可调节的模糊效果
  • 可调节的色调

Android 13 以下的设备上,该视图将保持透明背景,并且不会渲染任何效果


注意事项

1.采样源 确保绑定的采样源视图包含有效内容 2.兼容性 完整功能仅支持 Android 13+


我的其他开源库

相关推荐
恋猫de小郭11 小时前
Flutter 3D 渲染的全新选择和应用场景
android·前端·flutter
—Miss. Z—11 小时前
计算机二级MySQL——简单应用题(事件&视图)
android·mysql·adb
隔窗听雨眠12 小时前
GitHub Actions自动化运维实战:从零构建一体化CI/CD流水线
运维·自动化·github
邪修king12 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
三少爷的鞋12 小时前
LiveData 的缺陷:为什么我现在越来越少使用 LiveData?
android
雨白1 天前
NDK 初探:基于 C++ 实现参数哈希与签名校验
android
程序员正茂1 天前
Android studio中初步使用OpenCV库
android·opencv
紫_龙1 天前
window 维护多版本Android studio
android·ide·android studio
杉氧1 天前
KMP 自动化之路 (4):iOS 自动化构建与签名 —— 攻克最硬的骨头
android·架构·android jetpack
dong_junshuai1 天前
每天一个开源项目#46 World Monitor:6.6万星、56层地图的全球情报中枢
github