Android Open Source - WheelView Material Color






From Project

Back to project page WheelView.

License

The source code is released under:

Apache License

If you think the Android project WheelView listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.lukedeighton.wheelsample;
// w w w. j a  v a2  s .  c  om
import android.content.Context;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MaterialColor {
    private static Random sRandom = new Random();
    private static HashMap<String, Integer> sMaterialHashMap;
    private static Pattern sColorPattern = Pattern.compile("_[aA]?+\\d+");

    private static HashMap<String, Integer> getMaterialColors(Context context) {
        Field[] fields = R.color.class.getFields();
        HashMap<String, Integer> materialHashMap = new HashMap<String, Integer>(fields.length);
        for(Field field : fields) {
            String fieldName = field.getName();
            if (fieldName.startsWith("abc")) continue;;

            try {
                int resId = field.getInt(null);
                materialHashMap.put(fieldName, context.getResources().getColor(resId));
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }

        return materialHashMap;
    }

    public static Map.Entry<String, Integer> random(Context context, String regex) {
        if (sMaterialHashMap == null) {
            sMaterialHashMap = getMaterialColors(context);
        }

        Pattern pattern = Pattern.compile(regex);
        List<Map.Entry<String, Integer>> materialColors = new ArrayList<Map.Entry<String, Integer>>();
        for(Map.Entry<String, Integer> entry : sMaterialHashMap.entrySet()) {
            if (!pattern.matcher(entry.getKey()).matches()) continue;
            materialColors.add(entry);
        }

        int rndIndex = sRandom.nextInt(materialColors.size());
        return materialColors.get(rndIndex);
    }

    public static int getContrastColor(String colourName) {
        return sMaterialHashMap.get(colourName + "_700");
    }

    public static String getColorName(Map.Entry<String, Integer> entry) {
        String color = entry.getKey();
        Matcher matcher = sColorPattern.matcher(color);
        if (matcher.find()) {
            return color.substring(0, matcher.start());
        }
        return null;
    }
}




Java Source Code List

com.lukedeighton.wheelsample.MainActivity.java
com.lukedeighton.wheelsample.MaterialColor.java
com.lukedeighton.wheelsample.TextDrawable.java
com.lukedeighton.wheelview.Circle.java
com.lukedeighton.wheelview.WheelView.java
com.lukedeighton.wheelview.adapter.WheelAdapter.java
com.lukedeighton.wheelview.adapter.WheelArrayAdapter.java
com.lukedeighton.wheelview.transformer.FadingSelectionTransformer.java
com.lukedeighton.wheelview.transformer.ScalingItemTransformer.java
com.lukedeighton.wheelview.transformer.SimpleItemTransformer.java
com.lukedeighton.wheelview.transformer.WheelItemTransformer.java
com.lukedeighton.wheelview.transformer.WheelSelectionTransformer.java