【问题标题】:change the apperance of a button on click in Android Activity在 Android Activity 中单击时更改按钮的外观
【发布时间】:2014-11-04 11:39:07
【问题描述】:

我正在尝试更改单击按钮的外观,例如切换按钮。 当我点击它时,我希望它的文字和颜色发生变化,但它的文字就消失了。 这是我点击时的 btn 代码:

public void ToggleBuffer(View view) {
    if(this.toggleBufferIsActive){
        this.btn.setText("Start Buffer");
        this.btn.setTextColor(0x0000CD);
        this.btn.invalidate();
        this.toggleBufferIsActive = false;
    }
    else{
        this.btn.getBackground().setColorFilter(0xFFBBAA00, PorterDuff.Mode.MULTIPLY);
        this.btn.setText("Stop Buffer");
        this.btn.setTextColor(0xff0000);
        this.btn.invalidate();
        this.toggleBufferIsActive = true;
    }
}

谁能告诉我我在这里做错了什么? 非常感谢提前

【问题讨论】:

    标签: java android button android-activity


    【解决方案1】:

    您应该使用格式 0xAARRGGBB 而不是 0xRRGGBB。

    如果使用0xFF0000,会被读取为0x00FF0000,是透明的。

    只需输入 0xFFFF0000 即可。

    【讨论】:

      【解决方案2】:

      试试这样,

      私有 int START_BUFFER = 0; 私有 int STOP_BUFFER = 1;

      先写btn.setTag(START_BUFFER); btn 初始化后

      public void ToggleBuffer(View view) {
          if(((Button) view).getTag() = 0){
              this.btn.setText("Start Buffer");
              this.btn.setTextColor(0x0000CD);
              ((Button) view).setTag(STOP_BUFFER);
          }
          else{
              this.btn.getBackground().setColorFilter(0xFFBBAA00, PorterDuff.Mode.MULTIPLY);
              this.btn.setText("Stop Buffer");
              this.btn.setTextColor(0xff0000);
             ((Button) view).setTag(START_BUFFER);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多