给安卓设置背景色的时候保持默认按钮样式(关于使用setBackgroundColor导致丢失默认按钮样式的问题)
核心api
Button.setBackgroundTintList(ColorStateList);
void initPatterns(LinearLayout PatternsRoot){for(int i=0;i<512;i++){Button patternButton = new Button(PianoRollActivity.this);patternButton.setText(String.valueOf(i));patternButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view){for(int i=0;i<PatternsRoot.getChildCount();i++){ PatternsRoot.getChildAt(i).setBackgroundTintList(ColorStateList.valueOf(Colors.defaultButtonColor));} patternButton.setBackgroundTintList(ColorStateList.valueOf(Colors.orange));}});PatternsRoot.addView(patternButton);}} }
Colors.java
package com.xsh.opensltest.style;import android.graphics.Color;public class Colors {public static int orange = Color.rgb(255,165,0);public static int keyBlackColor = Color.BLACK;public static int noteColor = Color.RED;public static int keyWhiteColor= Color.WHITE;;// 升音public static int bgBlackColor = Color.GRAY;public static int bgWhiteColor = Color.WHITE;public static int defaultButtonColor = Color.LTGRAY; }
