给安卓设置背景色的时候保持默认按钮样式(关于使用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() { @Override public 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; }
浙公网安备 33010602011771号