У меня была похожая проблема с двумерной анимацией, когда вид переместился за пределы экрана (вне родительского вида).Мое решение было довольно простым.В моем пользовательском представлении я просто аннулирую родительское представление, чтобы оно перерисовывалось в каждом кадре.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
((View) this.getParent()).invalidate();
canvas.drawBitmap(icon, bm_x, bm_y, mPaint);
}