ObjectAnimator оставляет остаток - PullRequest
2 голосов
/ 01 февраля 2012

Кто-нибудь еще использовал ObjectAnimator, чтобы изменить положение элементов View? Это тоже оставляет на экране остатки?

Проверьте выше средней кнопки. Синяя коробка только что оживила оттуда и оставила остатки, разрывы экрана или фрагменты. Как вы, ребята, справляетесь с этим?

enter image description here

Код, если это имеет значение:

public class AnimateComponentsActivity extends Activity {

private View box;   
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    box = findViewById(R.id.box);
    box.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.i("TEST", "Box got a click");

        }
    });

    Button btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(clickListener);
    btn = (Button)findViewById(R.id.button2);
    btn.setOnClickListener(clickListener);
    btn = (Button)findViewById(R.id.button3);
    btn.setOnClickListener(clickListener);
}


private View.OnClickListener clickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Log.i("TEST", "Animation should be playing");

        // new way, but can't scale size
        ObjectAnimator.ofFloat(box, "y", v.getY()).start();
        ObjectAnimator.ofFloat(box, "x", v.getX()).start();
        ValueAnimator.ofObject(new WidthEvaluator(box), box.getWidth(),   v.getWidth()).start();

    }
};

private class WidthEvaluator extends FloatEvaluator {

    private View v;
    public WidthEvaluator(View v) {
        this.v = v;
    }

    @Override
    public Object evaluate(float fraction, Object startValue, Object endValue)         
        {
        Float num = (Float)super.evaluate(fraction, startValue, endValue);
        ViewGroup.LayoutParams params = v.getLayoutParams();
        params.width = Math.round(num);
        v.setLayoutParams(params);
        return num;
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...