Estou tentando aplicar uma animação a uma exibição no meu aplicativo Android depois que minha atividade é criada. Para fazer isso, preciso determinar o tamanho atual da exibição e configurar uma animação para escalar do tamanho atual para o novo tamanho. Essa parte deve ser feita em tempo de execução, pois a visualização é dimensionada para tamanhos diferentes, dependendo da entrada do usuário. Meu layout é definido em XML.
Parece uma tarefa fácil, e há muitas perguntas sobre SO, embora nenhuma que tenha resolvido meu problema, obviamente. Então talvez eu esteja perdendo algo óbvio. Eu entendo o meu ponto de vista por:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Esta multa funciona, mas quando chamado getWidth(), getHeight(), getMeasuredWidth(), getLayoutParams().width, etc., todos eles retornam 0. Eu também tentou manualmente chamando measure()na visão seguido por uma chamada para getMeasuredWidth(), mas isso não tem efeito.
Eu tentei chamar esses métodos e inspecionar o objeto no depurador em meus da atividade onCreate()e no onPostCreate(). Como posso descobrir as dimensões exatas dessa exibição em tempo de execução?
match_parent). Nesse caso, uma solução mais simples que pode ser chamada com segurança mesmo antes de o View ser desenhado (por exemplo, do método onCreate () da sua Activity) é apenas para usar Display.getSize (); consulte stackoverflow.com/a/30929599/5025060 para obter detalhes. Sei que não é o que o @NikReiman pediu, apenas deixando uma nota para aqueles que podem usar esse método mais simples.