基本信息
源码名称:Android高仿BiliBili动画 源码下载
源码大小:18.29M
文件格式:.zip
开发语言:Java
更新时间:2017-05-01
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍



package com.hotbitmapgg.ohmybilibili;

import android.app.Application;
import android.content.Context;
import android.support.annotation.ColorInt;
import android.support.annotation.ColorRes;

import com.bilibili.magicasakura.utils.ThemeUtils;
import com.facebook.stetho.Stetho;
import com.hotbitmapgg.ohmybilibili.utils.ThemeHelper;

/**
 * Created by hcc on 16/8/7 21:18
 * 100332338@qq.com
 * <p/>
 * 高仿哔哩哔哩动画App
 */
public class OhMyBiliBiliApp extends Application implements ThemeUtils.switchColor
{

    public static OhMyBiliBiliApp mInstance;

    @Override
    public void onCreate()
    {
        super.onCreate();

        mInstance = this;
        init();

        // 初始化主题切换
        ThemeUtils.setSwitchColor(this);
    }

    private void init()
    {
        //初始化Stetho调试工具
        Stetho.initialize(
                Stetho.newInitializerBuilder(this)
                        .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                        .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
                        .build());
    }


    public static OhMyBiliBiliApp getInstance()
    {

        return mInstance;
    }

    @Override
    public int replaceColorById(Context context, @ColorRes int colorId)
    {

        if (ThemeHelper.isDefaultTheme(context))
        {
            return context.getResources().getColor(colorId);
        }
        String theme = getTheme(context);
        if (theme != null)
        {
            colorId = getThemeColorId(context, colorId, theme);
        }
        return context.getResources().getColor(colorId);
    }

    @Override
    public int replaceColor(Context context, @ColorInt int color)
    {

        if (ThemeHelper.isDefaultTheme(context))
        {
            return color;
        }
        String theme = getTheme(context);
        int colorId = -1;

        if (theme != null)
        {
            colorId = getThemeColor(context, color, theme);
        }
        return colorId != -1 ? getResources().getColor(colorId) : color;
    }


    private String getTheme(Context context)
    {

        if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_STORM)
        {
            return "blue";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_HOPE)
        {
            return "purple";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_WOOD)
        {
            return "green";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_LIGHT)
        {
            return "green_light";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_THUNDER)
        {
            return "yellow";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_SAND)
        {
            return "orange";
        } else if (ThemeHelper.getTheme(context) == ThemeHelper.CARD_FIREY)
        {
            return "red";
        }
        return null;
    }

    private
    @ColorRes
    int getThemeColorId(Context context, int colorId, String theme)
    {

        switch (colorId)
        {
            case R.color.theme_color_primary:
                return context.getResources().getIdentifier(theme, "color", getPackageName());
            case R.color.theme_color_primary_dark:
                return context.getResources().getIdentifier(theme   "_dark", "color", getPackageName());
            case R.color.theme_color_primary_trans:
                return context.getResources().getIdentifier(theme   "_trans", "color", getPackageName());
        }
        return colorId;
    }

    private
    @ColorRes
    int getThemeColor(Context context, int color, String theme)
    {

        switch (color)
        {
            case 0xfffb7299:
                return context.getResources().getIdentifier(theme, "color", getPackageName());
            case 0xffb85671:
                return context.getResources().getIdentifier(theme   "_dark", "color", getPackageName());
            case 0x99f0486c:
                return context.getResources().getIdentifier(theme   "_trans", "color", getPackageName());
        }
        return -1;
    }
}