Как настроить внешний вид LayoutParams Width Lesser?

Привет, я заимствую метод Seth, который нашел здесь, чтобы анимировать мои группы представлений. Он отлично работает, но в неправильном направлении. Это мой первый опыт использования/расширения класса анимации, и я не могу понять, как уменьшить размер моего представления. Это расширяет его.

Ниже приведен класс и как я его использую. Любая помощь будет принята с благодарностью.

public class ContainerAnim extends Animation {
    int targetWidth;
    View view;
    boolean opened;

    public ContainerAnim(View v, int targetWidth, boolean opened) {
        this.view = v;
        this.targetWidth = targetWidth;
        this.opened = opened;
    }

    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        int newWidth;
        if (opened) {
            newWidth = (int) (targetWidth * interpolatedTime);
        } else {
            newWidth = (int) (targetWidth * (1 - interpolatedTime));
        }
        view.getLayoutParams().width = newWidth;
        view.requestLayout();
    }

    @Override
    public void initialize(int width, int height, int parentWidth,
            int parentHeight) {
        super.initialize(width, height, parentWidth, parentHeight);
    }

    @Override
    public boolean willChangeBounds() {
        return true;
    }
}

Использование:

... case R.id.menu_shrink:
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            FrameLayout frame = (FrameLayout) findViewById(R.id.listFragment_container);

            ContainerAnim set = new ContainerAnim(frame, 100, true);
            set.setDuration(200);
            LayoutAnimationController c = new LayoutAnimationController(set,
                    0.25f);
            frame.setLayoutAnimation(c);
            frame.startLayoutAnimation();

            ft.commit();
...

Ответ 1

Я думаю, вы перепутали использование этого третьего параметра (логического). Вы называете это "открытым" и передаете это правду, потому что хотите его сжать. Однако это противоречит использованию в моем исходном коде! В моем коде логическое значение было истинным, если представление было закрыто, но я хотел, чтобы он расти.

"и d = a boolean, который определяет направление (true = expand, false = collapsing).

Если вы замените условие в классе анимации на if (! open) {}, оно должно работать. Или передайте значение false вместо true. Или передайте это правду, но замените переменную на "закрытую", а не "открытую".

-Seth