给安卓设置背景色的时候保持默认按钮样式(关于使用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;
}

 

posted on 2025-10-26 11:09  小沙盒工作室  阅读(2)  评论(0)    收藏  举报