如何为图片赋予点击效果?

时间:2018-09-30 22:39:42

标签: android image

我有一张图片,我想创建一个按钮点击效果一样-触摸按钮时,它应该立即改变颜色。

我看过下面的链接,但对我来说不起作用:

How can I give an imageview click effect like a button on Android?

setColorFilter not working

也许这是我的Android版本,即Lollipop。尽管我在上面的链接中尝试过建议,但它不起作用。我的图像没有改变,并保持不变的颜色。

这是我的代码:

 //into the toolbar, inflate the back button and Populisto title,
    //which we find in toolbar_custom_view_layout.xml
    View logo = getLayoutInflater().inflate(R.layout.toolbar_custom_view_layout, null);
    toolbar.addView(logo);

    ImageView backButton = (ImageView) logo.findViewById(R.id.back_arrow_id);
    backButton.setBackgroundColor(Color.rgb(100, 100, 50));

    //set the ontouch listener
    backButton.setOnTouchListener(new View.OnTouchListener() {

      @Override
      public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {
          case MotionEvent.ACTION_DOWN: {
            ImageView view = (ImageView) v;
            view.getDrawable().setColorFilter(Color.BLACK, PorterDuff.Mode.MULTIPLY);
            view.invalidate();
            break;
          }
          case MotionEvent.ACTION_UP:
          case MotionEvent.ACTION_CANCEL: {
            ImageView view = (ImageView) v;
            //clear the overlay
            view.getDrawable().clearColorFilter();
            view.invalidate();
            break;
          }
        }

        return false;
      }

    });

2 个答案:

答案 0 :(得分:1)

return false;

似乎不像您编写的语句那样接受更改。 请将其更改为以下内容:

return true;

还有其他问题,随时问:)

答案 1 :(得分:0)

  

我有一张图片,我想创建一个按钮点击效果一样-触摸按钮时,它应该立即改变颜色。

将您的ImageView包裹在CardView中,并将CardView的前景设置为rds-launch-wizard-1 (ab-sdjfalkajsdf39), 它会给您带来涟漪效果。