颜色Color.alpha()/Color.red()/Color.green()/Color.blue()/Color.argb() setPixel()/getPixel()

Posted Mars-xq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了颜色Color.alpha()/Color.red()/Color.green()/Color.blue()/Color.argb() setPixel()/getPixel()相关的知识,希望对你有一定的参考价值。

Color.alpha()/Color.red()/Color.green()/Color.blue()/Color.argb()


    int alpha = Color.alpha(Color.RED);
    int red = Color.red(Color.RED);
    int green = Color.green(Color.RED);
    int blue = Color.blue(Color.RED);
    Log.e(TAG, "Color.RED===========> " + Color.RED);//-65536
    Log.e(TAG, "alpha===========> " + alpha);//255
    Log.e(TAG, "red=============> " + red);//255
    Log.e(TAG, "green===========> " + green);//0
    Log.e(TAG, "blue============> " + blue);//0
    int argb = Color.argb(alpha, red, green, blue);
    Log.e(TAG, "argb============> " + argb);//-65536
    String hexColor = Integer.toHexString(argb);	//十进制转16进制颜色
    Log.e(TAG, "hexColor ==========>" + hexColor);



    int alpha = Color.alpha(Color.BLACK);
    int red = Color.red(Color.BLACK);
    int green = Color.green(Color.BLACK);
    int blue = Color.blue(Color.BLACK);
    Log.e(TAG, "Color.BLACK===========> " + Color.BLACK);//-16777216
    Log.e(TAG, "alpha===========> " + alpha);//255
    Log.e(TAG, "red=============> " + red);//0
    Log.e(TAG, "green===========> " + green);//0
    Log.e(TAG, "blue============> " + blue);//0
    int argb = Color.argb(alpha, red, green, blue);
    Log.e(TAG, "argb============> " + argb);//-16777216

Bitmap.createBitmap() 与图片单位像素占用字节


    Bitmap bitmap1 = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
    Log.e(TAG, "ARGB_8888======>" + bitmap1.getByteCount());//4
    Bitmap bitmap2 = Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565);
    Log.e(TAG, "ARGB_565=======>" + bitmap2.getByteCount());//2
    //1byte=8bit,打印两张图片所占的字节,得到的值分别为4和2。对应着32位和16位。

setPixel()/getPixel() : 获取bitmap的像素颜色

示例:


    Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
    bitmap.setPixel(0, 0, Color.RED);
    int pixel = bitmap.getPixel(0, 0);//获取颜色值
    Log.e(TAG, "pixel ==========>" + pixel);// pixel = -65536;

    int a = Color.alpha(pixel);
    int r = Color.red(pixel);
    int g = Color.green(pixel);
    int b = Color.blue(pixel);
    Log.e(TAG, "a ==========>" + a);
    Log.e(TAG, "r ==========>" + r);
    Log.e(TAG, "g ==========>" + g);
    Log.e(TAG, "b ==========>" + b);
    //得到a : 255 , r : 255 , g : 0 , b : 0;

方法:

 /**
 * 将指定的@link Color写入x,y坐标处的位图(假设它是可变的)。
 * 颜色必须是@link ColorSpace.Named#SRGB SRGB颜色空间中的非预乘ARGB值。
 *
 * @param x     要替换的像素的x坐标(0…宽度-1)
 * @param y     要替换的像素的y坐标(0…高度-1)
 * @param color 要写入位图的ARGB颜色
 *
 * @throws IllegalStateException 如果位图不可更改,@将引发IllegalStateException
 * @throws IllegalArgumentException 如果x、y超出位图的边界。
 */
public void setPixel(int x, int y, @ColorInt int color) 


/**
 * 返回指定位置的@link Color。抛出异常如果x或y超出范围(负值或>=宽度或高度分别)。
 * 返回的颜色是中的非预乘ARGB值@link ColorSpace.命名为#SRGB SRGB颜色空间。
 *
 * @param x    x要返回的像素的x坐标(0…宽度-1)
 * @param y    要返回的像素的y坐标(0…高度-1)
 * @return     返回指定坐标处的argb@link Color
 * @throws IllegalArgumentException 如果x,y超出位图的边界,@将抛出IllegalArgumentException
 * @throws IllegalStateException 
 *      如果位图的配置为@link config#HARDWARE,则@throws IllegalStateException会引发非法状态异常
 */
@ColorInt
public int getPixel(int x, int y) 

以上是关于颜色Color.alpha()/Color.red()/Color.green()/Color.blue()/Color.argb() setPixel()/getPixel()的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Java 中将 Color.RED 代码转换为颜色的整数值? [复制]

设置 placeholder 字体颜色 : ::

颜色值

js 根据css颜色属性进行判断

修改placeholder颜色

修改placeholder的颜色