在自定义视图中添加了触摸反馈

时间:2018-05-08 09:48:17

标签: android android-custom-view touch-feedback

如何在我的自定义视图中添加像纹波一样的触摸反馈?

我可以检测到触摸事件,但我希望在触摸自定义视图时发生简单的涟漪。那可能吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您只需为视图播放xml动画。

Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.my_amazing_ripple_effect);

myCustomView.startAnimation(anim);

你可以在互联网上找到很多xml动画,但你也可以创建自己的(我强烈推荐)。

如果这有帮助,请告诉我。

更新:

示例代码:

View myView = ...some view; // grab your view here

myView.setOnClickListener( v -> { // this is a lambda expression. It is only used to shorten the code and improve its legibility. You could also use myView.setOnClickListener(new View.OnClickListener() { }

    Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.my_amazing_ripple_effect);

    myView.startAnimation(anim);

});

答案 1 :(得分:0)

使用此compile 'com.balysv:material-ripple:1.0.2',将自定义窗口小部件放在MaterialRippleLayoutHere

  <com.balysv.materialripple.MaterialRippleLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                app:mrl_rippleAlpha="0.3"
                android:layout_weight="2"
                app:mrl_rippleColor="#80FF5722"
                app:mrl_rippleDimension="10dp"
                app:mrl_rippleHover="true"
                app:mrl_rippleOverlay="true">
            <com.your.custome.view
               />
            </com.balysv.materialripple.MaterialRippleLayout>

您也可以通过编程方式使用

MaterialRippleLayout.on(view)
           .rippleColor(Color.BLACK)
           .create();