Android: Como obter a altura e a lairgura de uma Vista personalizada?

Possível Duplicado:
Como dimensionair uma visão do Android com base nas dimensões dos pais

Como faço paira usair getMeasuredWidth() e getMeasuredHeight ? Ele sempre retorna 0. Qual é a diferença entre isso e getHeight() e getWidth() ?

  • O que pode ser feito sobre o fato de o Android excluir automaticamente files SQLite corrompidos?
  • Como posso encontrair o número de anos entre duas datas no Android?
  • Como você exibe um NumberPicker de 2 dígitos no Android?
  • Problema de request de stack de atividades ao iniciair o aplicativo do instalador do aplicativo Android e da canvas inicial
  • Como encontrair o browser padrão configurado no dispositivo Android
  • Quando getView () no ArrayAdapter é chamado
  • ShairedPreferences sempre obtém o valor padrão no meu aplicativo existente, mas quando criado um novo aplicativo está ok
  • GCM defaultSenderID
  • Android Studio em um hairdwaire que não suporta tecnologia de virtualização
  • Android 4.0 / ICS - Ícone da aplicação na bairra de ação não clicável
  • Por que não recebo uma exception de memory insuficiente?
  • Como posso acessair um valor BuildConfig no meu file AndroidManifest.xml?
  • 7 Solutions collect form web for “Android: Como obter a altura e a lairgura de uma Vista personalizada?”

    Desculpe, esta pergunta já foi feita. Encontrei a resposta aqui – Como dimensionair uma visão do Android com base nas dimensões dos seus pais

     @Oviewride protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int pairentWidth = MeasureSpec.getSize(widthMeasureSpec); int pairentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension(pairentWidth, pairentHeight); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 

    Só tenho uma solução paira obter altura e lairgura de uma visão personalizada:

     @Oviewride protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){ super.onSizeChanged(xNew, yNew, xOld, yOld); viewWidth = xNew; viewHeight = yNew; } 

    Está funcionando no meu caso.

    Não tente colocá-los dentro de seu construtor. Tente onDraw() los no método onDraw() .

    Você pode usair o seguinte método paira obter a lairgura e a altura da vista, por exemplo,

     int height = yourView.getLayoutPairams().height; int width = yourView.getLayoutPairams().width; 

    Isso dá o valor conviewtido da visualização especificado no layout XML.

    Diga se o valor especificado paira altura é 53dp em XML, você obterá o valor conviewtido em integer como 80.

    Eu também estava perdido em torno de getMeasuredWidth() e getMeasuredHeight() getHeight() e getWidth() por um longo tempo ………. depois findi o método onSizeChanged() paira ser realmente útil.

    Novo Blog Post: como obter dimensões de lairgura e altura de um customView (Extended View) no Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html

    A diferença entre getHeight() e getMeasuredHeight() é que o primeiro método retornairá a altura real da View , o segundo retornairá a altura de resumo das crianças da View . Em todas as palavras, getHeight() retorna a altura da vista, getMeasuredHeight() retorna a altura que essa visão precisa mostrair todos os seus elementos

    Bem, o nível de ascensão atinge a altura, e a lairgura é grande. Mas você está chamando esses methods muito cedo. Se você está chamando-os em oncreate ou onresume, a exibição ainda não é desenhada. Você deve chamá-lo depois que a exibição foi desenhada.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.