向自定义视图添加了触摸反馈
Added A Touch FeedBack to Custom View
如何向我的自定义视图添加像波纹一样的触摸反馈?
我可以检测到触摸事件,但我希望在触摸我的自定义视图时像涟漪一样简单。这可能吗?
提前致谢。
您只需为您的视图播放 xml 动画。
Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.my_amazing_ripple_effect);
myCustomView.startAnimation(anim);
您可以在 Internet 上找到许多 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);
});
使用此 compile 'com.balysv:material-ripple:1.0.2'
,将您的自定义小部件放入 MaterialRippleLayout
,Here
<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();
如何向我的自定义视图添加像波纹一样的触摸反馈?
我可以检测到触摸事件,但我希望在触摸我的自定义视图时像涟漪一样简单。这可能吗?
提前致谢。
您只需为您的视图播放 xml 动画。
Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.my_amazing_ripple_effect);
myCustomView.startAnimation(anim);
您可以在 Internet 上找到许多 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);
});
使用此 compile 'com.balysv:material-ripple:1.0.2'
,将您的自定义小部件放入 MaterialRippleLayout
,Here
<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();