将外部参数传递给自定义视图
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 方法,告诉它使用什么动画
我刚开始画画,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 方法,告诉它使用什么动画