将外部参数传递给自定义视图

Pass external parameter to Custom View

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

我有一个自定义视图

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 个这样的视图。但是在第二个上,东西应该 从左到右

是否可以通过某种方式将此 "parameter" 传递给自定义视图?或者我真的必须创建完全相同的 class 并将加号更改为减号,从而使其成为新的 class。这意味着通过扩展视图创建的动画根本不可调整。

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

Is it possible to somehow pass this "parameter" to the Custom view?

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

步骤 #2:添加 setter 方法来填充字段

第 3 步:从某物(activity、片段等)调用 setter 方法,告诉它使用什么动画