WindowManager에 뷰 (customView)가 추가되었습니다.WindowManager에 애니메이션보기가 추가되었습니다.
WindowManager mWm = (WindowManager)activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, 0, PixelFormat.TRANSPARENT);
mWl.dimAmount = 0.0f;
mWm.addView(customView, mWl);
사용자 정의보기에서 닫기 버튼을 누르면 번역 애니메이션이 호출됩니다.
가 ////이 애니메이션의 핸들러 ////
final Handler translateHandler = new Handler();
final Runnable mtranslateUp = new Runnable() {
public void run() {
Log.v("TEST","mtranslateUp Runnable");
startAnimation(translateUp);
}
};
////이 닫기 버튼 청취자이다 ////
View.OnClickListener closeButtonListener = new View.OnClickListener() {
public void onClick(View v) {
translateHandler.post(mtranslateUp);
}
};
//// 번역 애니메이션입니다. ///
translateUp = new TranslateAnimation(0,0,0,-200);
translateUp.setFillAfter(true);
translateUp.setDuration(1000);
translateUp.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
Log.v("TEST","translateUp onAnimationEnd");
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
Log.v("TEST","translateUp onAnimationStart");
}}
);
customView가 액티비티에 추가되면이 코드는 정상적으로 작동합니다.
customView가 WindowManager에 추가되면 onAnimationStart 내의 로그는 표시되지 않지만 Runnable 내부의 로그가 표시 될 수 있습니다.
누구나 WindowManager에 추가 된 뷰에서 애니메이션을 수행하는 방법을 알려줄 수 있습니까?
어떤 해결책이 있습니까? 제발, 나도 똑같은 문제에 직면하고있다 – om252345