如何获取图像视图的颜色代码

时间:2012-01-11 10:12:53

标签: android

我有一张图片。我需要以编程方式知道该图像的颜色。有可能吗?

实际上,当我旋转某个物体时,我需要知道多个图像来了解图像的颜色。

2 个答案:

答案 0 :(得分:2)

试试这个,

 int ColorCode = imageView.getDrawingCache().getPixel(x, y);

x和y是x和y坐标

希望这能帮到你

答案 1 :(得分:1)

对于ANdroid

  1. 确保您的依赖项标识符中指定的版本与您在build.gradle文件中设置的应用程序的compileSdkVersion匹配:
  2. 
    
        android {
          compileSdkVersion 24
          ...
        }
        
        dependencies {
          ...
          compile 'com.android.support:palette-v7:24.2.1'
        }
    
    
    

    1. 通过Palette对象,您可以访问图像中的主要颜色,以及覆盖文本的相应颜色。使用调色板设计应用程序的样式,并根据给定的源图像动态更改应用程序的颜色方案。

      1. 要创建调色板,首先从位图实例化Palette.Builder。然后,您可以在生成之前使用Palette.Builder自定义调色板。本节将介绍从位图图像生成和自定义调色板
    2. 以下代码段提供了两种类型的调色板生成的示例方法:

      // Generate palette synchronously and return it
      public Palette createPaletteSync(Bitmap bitmap) {
        Palette p = Palette.from(bitmap).generate();
        return p;
      }
      
      // Generate palette asynchronously and use it on a different
      // thread using onGenerated()
      public void createPaletteAsync(Bitmap bitmap) {
        Palette.from(bitmap).generate(new PaletteAsyncListener() {
          public void onGenerated(Palette p) {
            // Use generated instance
      
       Palette.Swatch vibrantSwatch = checkVibrantSwatch(p);
      
        // Set the toolbar background and text colors
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setBackgroundColor(vibrantSwatch.getRgb());
        toolbar.setTitleTextColor(vibrantSwatch.getTitleTextColor());
          }
        });
      }
      
      
      // Return a palette's vibrant swatch after checking that it exists
      private Palette.Swatch checkVibrantSwatch(Palette p) {
        Palette.Swatch vibrant = p.getVibrantSwatch();
        if (vibrant != null) {
          return vibrant;
        }
        // Throw error
      }
      

      请参阅此附加详细信息

      https://developer.android.com/training/material/palette-colors.html#create-a-palette