【问题标题】:Pass external parameter to Custom View将外部参数传递给自定义视图
【发布时间】:2017-06-04 19:10:53
【问题描述】:

我刚开始画画、画布、基本动画,但偶然发现了这个烦人的问题:

我有一个自定义视图

public class CustomView extends View{
   //

   //Edited code ****************************
   bool dir;    // true -- right-to-left, false -- left-to-right

   public void setDirection(bool b)
       this.bool = b 

   // ****************************************


   public CustomView(Context context) {
     super(context);
     ...
   }
   public CustomView(Context context, AttributeSet attrs) {
      super(context, attrs)
    ...
   }
   ...

   //stuff for animation
   protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
   ...
  }
  ...

在里面我创建了一个小动画,基本上是一个从右到左一遍又一遍地飞行的东西。

现在,假设我想在布局中包含 2 个这样的视图。但是在第二个中,东西应该从左到右

是否有可能以某种方式将此“参数”传递给自定义视图?还是我真的必须创建完全相同的类并将加号更改为减号并使其成为一个新类。这意味着通过扩展视图创建的动画根本无法调整。

如果是后者,那么有没有更好的方法来制作可调动画?

【问题讨论】:

    标签: android android-animation subclass android-custom-view


    【解决方案1】:

    是否有可能以某种方式将此“参数”传递给自定义视图?

    第 1 步:在自定义视图中添加一个字段来保存动画

    第 2 步:添加一个 setter 方法来填充字段

    第 3 步:从某个对象(活动、片段等)调用该 setter 方法,告诉它要使用什么动画

    【讨论】:

    • 您好,感谢您的快速回复。你能快速看一下我编辑的代码并告诉我这是不是你的意思?
    • @Marsl:那是一个字段和该字段的setter方法。只要你调用setDirection() 来教给定的CustomView 使用哪个方向,并且只要你在CustomView 中使用dir 来控制它的行为,你就应该得到你想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    相关资源
    最近更新 更多