Color argb()方法的参数

2017-07-10  本文已影响1251人  秋缘未了

COLOR的定义是采用ARGB的方式,以int型数字来表示。
Color.argb((int) 255, 32, 40, 50)
Alpha 是透明度,范围: 0——255,位于int的高8位;(0是完全透明,255是完全不透明)
RED 是红,范围: 0——255,位于int的8-16位;
Green 是绿,范围: 0——255,位于int的16-24位;
Blue 是透明度,范围: 0——255,位于int的低8位

argb()方法的参数依次为透明度,红,绿,蓝的大小,可以理解为浓度,这里组合起来的就是黑色。

在程序中直接控制

setBackgroundColor(Color.argb((int) alpha, 32,40,50));

如果是直接在java代码中定义。这里要注意哦。透明度不可以省去哦!!!就像这样0xFF080287,前面的0x代表16进制。

    intmycolor = 0xff123456;
    Button btn = (Button) findViewById(R.id.btn);
    btn.setBackgroundColor(mycolor);

利用静态方法argb来设置颜色:

Button btn = (Button) findViewById(R.id.btn);
        btn.setBackgroundColor(Color.argb(0xff,0x00, 0x00,0x00));

这种方法必须使用0x开头,而不是用我们常用的#。值也必须用8位表示 ,不接受6位的颜色表示。分组一下0x|ff|ff00ff,0x是代表颜色整数的标记,ff是表示透明度,ff00ff表示RGB颜色值

6位(#000000)就是RGB值
8位(#1e000000)ARGB 头两位是透明度,00是完全透明,ff是完全不透明,后6位是RGB值,
比较适中的透明度值是int color = Color.argb ( 127, 255, 0, 255 ); // 半透明的紫色
其中第一个参数表示透明,0表示完全透明,255(ff)表示完全不透明;后三位分别代表RGB的值了。

在滑动布局中标题栏背景色渐变实现

   private void initListeners() {
        // 获取顶部轮播图高度后,设置滚动监听
        ViewTreeObserver vto = banner.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                banner.getViewTreeObserver().removeGlobalOnLayoutListener(
                        this);
                imageHeight = banner.getHeight();

                scrollView.setScrollViewListener(new ObservableScrollview.ScrollViewListener() {
                    @Override
                    public void onScrollChanged(ObservableScrollview scrollView, int x, int y, int oldx, int oldy) { 
                        // Log.i("TAG", "y--->" + y + "    height-->" + height);
                        if (y <= 0) {
                            tv_title.setBackgroundColor(Color.argb((int) 0, 32, 40, 50));//AGB由相关工具获得,或者美工提供
                        } else if (y > 0 && y <= imageHeight) {
                            float scale = (float) y / imageHeight;
                            float alpha = (255 * scale);
                            rl_title_bg.setBackgroundColor(Color.argb((int) alpha, 32,40,50));
                        } else {
//                            rl_title_bg.setBackgroundResource(R.mipmap.title_bg);
                            rl_title_bg.setBackgroundColor(Color.argb((int) 255, 32, 40, 50));
                        }
                    }
                });
            }
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读