首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中设置按钮点击效果?

如何在Android中设置按钮点击效果?
EN

Stack Overflow用户
提问于 2011-08-24 21:03:21
回答 11查看 272.1K关注 0票数 118

在Android中,当我设置一个按钮的背景图片时,当我点击它时,我看不到任何效果。

我需要在按钮上设置一些效果,这样用户就可以识别出按钮被点击了。

单击该按钮时,该按钮应该会变暗几秒钟。该怎么做呢?

EN

Stack Overflow用户

发布于 2014-05-13 18:09:36

或者只使用一张背景图片,就可以使用setOnTouchListener实现点击效果

两种方式

代码语言:javascript
复制
((Button)findViewById(R.id.testBth)).setOnTouchListener(new OnTouchListener() {

      @Override
        public boolean onTouch(View v, MotionEvent event) {
          switch (event.getAction()) {
              case MotionEvent.ACTION_DOWN: {
                  Button view = (Button) v;
                  view.getBackground().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
                  v.invalidate();
                  break;
              }
              case MotionEvent.ACTION_UP:
                  // Your action here on button click
              case MotionEvent.ACTION_CANCEL: {
                  Button view = (Button) v;
                  view.getBackground().clearColorFilter();
                  view.invalidate();
                  break;
              }
          }
          return true;
        }
});

如果您不想使用setOnTouchLister,另一种实现方法是

代码语言:javascript
复制
    myButton.getBackground().setColorFilter(.setColorFilter(0xF00, Mode.MULTIPLY);

    StateListDrawable listDrawable = new StateListDrawable();
    listDrawable.addState(new int[] {android.R.attr.state_pressed}, drawablePressed);
    listDrawable.addState(new int[] {android.R.attr.defaultValue}, myButton);

    myButton.setBackgroundDrawable(listDrawable);
票数 11
EN
查看全部 11 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7175873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档