加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android颜色转换工具类ColorUtil

发布时间:2020-12-15 03:20:49 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 private void refreshTopbar() { if(mOnTurnListener != null) { Topbar topbar = mOnTurnListener.onScroll(); if(getScrollY() = 300) { topbar.set

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

private void refreshTopbar() {
    if(mOnTurnListener != null) {
         Topbar topbar = mOnTurnListener.onScroll();
         if(getScrollY() >= 300) {
             topbar.setAlpha(1.0f);
         } else if(getScrollY() >= 180 && getScrollY() < 300) {
             topbar.setAlpha((getScrollY() - 180) / 120f);
         } else {
             topbar.setAlpha(0.0f);
         }
    }
}

现在关键就是setAlpha这个方法了,其实也简单,就是利用toAlpha转换成颜色就行。因此我写了一个工具类 ColorUtil.java来对颜色进行一些操作:
package com.codefrom.utils;

import java.util.regex.Pattern;
import android.graphics.Color;
import com.codefrom.common.MApplication;

public class ColorUtil {

    /**
     * 获取资源中的颜色
     * @param color
     * @return
     */
    public static int getResourcesColor(int color) {

        int ret = 0x00ffffff;
        try {
            ret = MApplication.gainContext().getResources().getColor(color);
        } catch (Exception e) {
        }

        return ret;
    }

    /**
     * 将十六进制 颜色代码 转换为 int
     * 
     * @return
     */
    public static int HextoColor(String color) {

        // #ff00CCFF
        String reg = "#[a-f0-9A-F]{8}";
        if (!Pattern.matches(reg,color)) {
            color = "#00ffffff";
        }

        return Color.parseColor(color);
    }

    /**
     * 修改颜色透明度
     * @param color
     * @param alpha
     * @return
     */
    public static int changeAlpha(int color,int alpha) {
        int red = Color.red(color);
        int green = Color.green(color);
        int blue = Color.blue(color);

        return Color.argb(alpha,red,green,blue);
    }

}

   public void setAlpha(float toAlpha) {
        //setBackgroundColor(ColorUtil.changeAlpha(ColorUtil.HextoColor("#ff0066ff"),(int)(toAlpha * 0xff)));
        setBackgroundColor(ColorUtil.changeAlpha(ColorUtil.getResourcesColor(R.color.topbar_bg),(int)(toAlpha * 0xff)));
    }

public class MApplication extends Application {
    /**对外提供整个应用生命周期的Context**/
    private static Context instance;
    ……
    /**
     * 对外提供Application Context
     * @return
     */
    public static Context gainContext() {
        return instance;
    }

    public void onCreate() {
        super.onCreate();
        instance = this;
        ……
    }
    ……
}

原文地址: Android颜色转换工具类ColorUtil

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读