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.