Como mover corretamente uma visão?

Alguém pode, por favor, explicar a um noob a maneira correta de animar um View para que sua área de toque e imagem realmente se movam juntas ?!

Eu li muitas postagens e perguntas e tutoriais, mas nenhum explica o que move o layout e o que move a imagem de forma que eu possa animar uma visualização e, em seguida, deixá-la em sua nova posição.

Este é um método de exemplo com o qual estou trabalhando, tentando várias combinações diferentes para não ter sucesso. A exibição está no pai RelativeLayout. É um menu tocável de ícones, e é animado com um recurso xml em um clique para deslizar para fora da tela, deixando apenas uma pequena guia mostrando, onde ele precisa ficar até ser clicado novamente.

<code>public void RetractTools (View v){      
    final ImageView finalImage1 = (ImageView) findViewById(R.id.paintsView);
    Animation slideout = AnimationUtils.loadAnimation(this, R.anim.slideout_tools);
    slideout.setFillAfter(true);
    slideout.setAnimationListener(new AnimationListener() {
        @Override
        public void onAnimationEnd(Animation animation) {
            finalImage1.setEnabled(true);
            optionMenu.showing = false;
            optionMenu.inMotion = false;
            finalImage1.layout(1258, 668, 1697, 752);
            finalImage1.setRight(1280);
            finalImage1.invalidate();
        }

        @Override
        public void onAnimationRepeat(Animation arg0) {
        }

        @Override
        public void onAnimationStart(Animation arg0) {
            finalImage1.setEnabled(false);
        }
    });

    optionMenu.inMotion = true;
    v.startAnimation(slideout);
 }// End RetractMenu
</code>

Não importa o que eu tente, eu encontro problemas. setFillAfter não faz nada quando definido no arquivo xml. Definido programaticamente, deixa a imagem no lugar certo, mas os controles de toque permanecem onde o menu estava. Eu tentei setLeft e setRight que, aparentemente, só movem a imagem, não a posição da vista, e todos os tipos de diferentes opções de layout, e preenchem e não preenchem e invalidam e não, mas não podem resolvê-lo. Eu claramente não entendo a mecânica subjacente necessária para posicionar e dar uma visão! : D

Obrigado.

EDITAR: Solução

Para qualquer um que tenha problemas semelhantes, é assim que descobri que trabalhei com layouts relativos. Você cria um objeto LayoutParams com o tamanho especificado e, em seguida, pode atribuir a ele posições. por exemplo.

<code>    final RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);           
    position.leftMargin = 440;
</code>

Então, atribua isso à sua opinião

<code>    myView.setLayoutParams(position);
</code>

Então, em resumo, você usa um objeto LayoutParams como uma interface para a posição da sua visão, em vez de acessar as coordenadas da visão diretamente, como eu assumi.

questionAnswers(1)

yourAnswerToTheQuestion