Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取imageView颜色并设置补色_Android_Colors_Background Image - Fatal编程技术网

Android 获取imageView颜色并设置补色

Android 获取imageView颜色并设置补色,android,colors,background-image,Android,Colors,Background Image,我制作了Viewpager,只有ImageView 从服务器上删除图像。所以它可以是亮的也可以是暗的 注意当前页面/总页面的布局如下 现在我想做的是,如果图像是明亮的,请注意布局使其变暗 如果图像是黑暗的,注意布局使明亮 所以我的问题是 如何知道当前图像是亮还是暗 我如何从图像中生成互补色 Android支持库r21及更高版本包括Palette类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该

我制作了Viewpager,只有ImageView

从服务器上删除图像。所以它可以是亮的也可以是暗的

注意当前页面/总页面的布局如下

现在我想做的是,如果图像是明亮的,请注意布局使其变暗

如果图像是黑暗的,注意布局使明亮

所以我的问题是

  • 如何知道当前图像是亮还是暗
  • 我如何从图像中生成互补色

  • Android支持库r21及更高版本包括Palette类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该线程,请调用palete.generateAsync()方法并提供一个侦听器

    要在项目中使用Palette类,请将以下Gradle依赖项添加到应用程序的模块中:

    implementation 'androidx.palette:palette:$version'
    
    要从图像中获取颜色,请执行以下操作:

        Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
            public void onGenerated(Palette palette) {
                // Do something with colors...
            }
    });
    
    调色板库尝试提取以下六种颜色配置文件:

    轻快活泼, 充满活力的 黑暗充满活力, 灯光柔和, 沉默的 黑暗无声


    在RGB模型中,寻找互补色非常简单。对于任何给定的颜色,例如红色(#FF0000),您都需要找到该颜色,该颜色在添加到红色后会创建白色(0xFFFFFF)。当然,您所需要做的就是从白色中减去红色,得到青色(0xFFFFFF-0xFF0000=0x00FFFF)。

    Android支持库r21及更高版本包括调色板类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该线程,请调用palete.generateAsync()方法并提供一个侦听器

    要在项目中使用Palette类,请将以下Gradle依赖项添加到应用程序的模块中:

    implementation 'androidx.palette:palette:$version'
    
    要从图像中获取颜色,请执行以下操作:

        Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
            public void onGenerated(Palette palette) {
                // Do something with colors...
            }
    });
    
    调色板库尝试提取以下六种颜色配置文件:

    轻快活泼, 充满活力的 黑暗充满活力, 灯光柔和, 沉默的 黑暗无声


    在RGB模型中,寻找互补色非常简单。对于任何给定的颜色,例如红色(#FF0000),您都需要找到该颜色,该颜色在添加到红色后会创建白色(0xFFFFFF)。当然,您需要做的就是从白色中减去红色,得到青色(0xFFFFFF-0xFF0000=0x00FFFF)。

    谢谢您的建议。我会的!谢谢你的建议。我会的!