package ren.solid.skinloader.attr; import android.content.res.ColorStateList; import android.graphics.Color; import android.support.design.widget.NavigationView; import android.util.Log; import android.view.View; import ren.solid.skinloader.load.SkinManager; /** * Created by _SOLID * Date:2016/4/14 * Time:17:45 */ public class NavigationViewAttr extends SkinAttr { @Override public void apply(View view) { if (view instanceof NavigationView) { Log.i("TabLayoutAttr", "apply"); NavigationView nv = (NavigationView) view; if (RES_TYPE_NAME_COLOR.equals(attrValueTypeName)) { Log.i("TabLayoutAttr", "apply color"); int color = SkinManager.getInstance().getColor(attrValueRefId); nv.setItemTextColor(createSelector(color)); nv.setItemIconTintList(createSelector(color)); } else if (RES_TYPE_NAME_DRAWABLE.equals(attrValueTypeName)) { Log.i("TabLayoutAttr", "apply drawable"); // tv.setDivider(SkinManager.getInstance().getDrawable(attrValueRefId)); } } } private ColorStateList createSelector(int color) { int statePressed = android.R.attr.state_checked; int stateChecked = android.R.attr.state_checked; int[][] state = {{statePressed}, {-statePressed}, {stateChecked}, {-stateChecked}}; int color1 = color; int color2 = Color.parseColor("#6E6E6E"); int color3 = color; int color4 = Color.parseColor("#6E6E6E"); int[] colors = {color1, color2, color3, color4}; ColorStateList colorStateList = new ColorStateList(state, colors); return colorStateList; } }