【问题标题】:Ripple Effect direction issue涟漪效应方向问题
【发布时间】:2016-05-04 09:49:18
【问题描述】:

当我触摸布局的边框(以 RippleDrawable 作为背景的线性布局)时,涟漪效果不会从点击的点开始,而是在 波纹也传播到中心。

RippleDrawable drawable = new RippleDrawable(ColorStateList.valueOf(pressedColor), null, getRippleMask(baseColor)); this.setBackground(drawable);

我也尝试使用setHotspot 方法,使用坐标 (0,0),它不是从左上角开始。

【问题讨论】:

  • 请解释一下你到底想做什么。无论用户在哪里触摸View,您都希望波纹从左上角开始?
  • 不,我想在用户点击视图的位置开始涟漪效果。
  • 这是默认行为。你一定是做错了什么才能打破这个,但是没有看到你的代码的相关部分没有人可以帮助你。

标签: android animation layout ripple rippledrawable


【解决方案1】:

试试这个方法可能对你有用

private void startRippleAnimation(View v, float x, float y){
   Drawable background = v.getBackground();
   if(background instanceof RippleDrawable){
     RippleDrawable ripple = (RippleDrawable)background;
     ripple.setHotspot(x, y);
     ripple.setVisible (true, true);
   }

}

【讨论】:

  • 它从我想要的地方开始,但动画转到中心而不是线性循环传播
【解决方案2】:

setHotspot(x,y)之前使用setHotspotBound(x,y,x,y)的方法解决

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2017-03-10
    • 2018-02-23
    • 2021-07-08
    相关资源
    最近更新 更多