dav*_*ber 7 android android-animation android-event
我创建了一个自定义视图,它使用虚拟TranslateAnimation来设置一些布局属性.我使用Interpolator计算高度,并将其应用于TranslateAnimation的applyTransformation()方法内的视图.
如果我从我的Activity中触发动画,这工作得很好.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("test", "onCreate()");
view.expand(); // This method starts the animation
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用触摸事件做同样的事情时,没有任何反应.
@Override
// This method is touch handler of the View itself
public boolean onTouch(View v, MotionEvent event) {
Log.i("test", "onTouch()");
this.expand(); // onTouch is part of the view itself and calls expand() directly
return true;
}
Run Code Online (Sandbox Code Playgroud)
我的expand方法如下所示:
public void expand() {
Log.i("test", "Expand!");
TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 0) {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
Log.i("test", "applyTransformation()");
super.applyTransformation(interpolatedTime, t);
// do something
}
};
anim.setDuration(500);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
this.someInternalView.startAnimation(anim);
}
Run Code Online (Sandbox Code Playgroud)
一旦我的活动被创建,Logcat显示"onCreate()"在我的触摸事件中,Logcat显示"onTouch()"在expand()方法内部,Logcat显示"Expand!" - 从活动或活动中调用.
在方法内部,applyTransformation()Logcat显示"applyTransformation()" - 但是!仅当从onCreate()调用expand()时.尝试从事件启动动画的任何尝试都失败了.
这看起来像是某种线程问题.这可能吗?有什么我想念的吗?据我在其他帖子中看到,从事件开始动画应该没有任何问题......
提前致谢!
尝试这个:
public void expand() {
Log.i("test", "Expand!");
runOnUiThread(new Runnable() {
@Override
public void run() {
TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 0) {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
Log.i("test", "applyTransformation()");
super.applyTransformation(interpolatedTime, t);
// do something
}
};
anim.setDuration(500);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
this.someInternalView.startAnimation(anim);
}
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3153 次 |
最近记录: |