╔══════════════════════════════════════════════╗ ^
║ ImageView ╔══════════════╗ ║ |
║ ║ ║ ║ |
║ ║ Actual image ║ ║ |
║ ║ ║ ║ |60px height of ImageView
║ ║ ║ ║ |
║ ║ ║ ║ |
║ ╚══════════════╝ ║ |
╚══════════════════════════════════════════════╝
<------------------------------------------------>
90px width of ImageView
Eu tenho uma visualização de imagem com alguma altura e largura padrão, as imagens são armazenadas em db e eu quero dimensionar a imagem de acordo com a largura da altura do Imageview. Como eu não quero que ele dê valores padrão, porque sempre que eu mudo é altura e largura, também tenho que mudar isso no código.
Estou tentando obter a altura e a largura do ImageView, mas 0 é retornado para mim nos dois casos.
int height = ((ImageView) v.findViewById(R.id.img_ItemView)).getHeight();
isso me retorna 0, mesmo que tenha altura e largura padrão
android:scaleType="centerInside"
?Respostas:
Minha resposta a esta pergunta pode ajudá-lo:
Você pode adicionar seu trabalho de dimensionamento de imagens no método onPreDraw ().
fonte
Acabei de definir essa propriedade e agora o sistema operacional Android está cuidando de tudo.
Use isso em seu layout.xml onde você plantou seu ImageView: D
fonte
Eu conseguia obter largura e altura da imagem pelo seu desenho;
fonte
A razão pela qual as dimensões do ImageView são 0 é porque, quando você as consulta, a exibição ainda não executou o layout e as etapas de medição. Você disse à visualização apenas como ela se "comportaria" no layout, mas ainda não calculou onde colocar cada visualização.
Como você decide o tamanho a ser dado à visualização da imagem? Você não pode simplesmente usar uma das opções de dimensionamento implementadas nativamente?
fonte
Postar no thread da interface do usuário funciona para mim.
fonte
seu arquivo xml:
seu arquivo java:
fonte
Acho que você pode deixar o sistema operacional Android cuidar disso para você. Defina o tipo de escala no ImageView para
fitXY
e a imagem exibida será dimensionada para caber no tamanho atual da exibição.fonte
A maneira mais simples é obter a largura e a altura de um ImageView no método da atividade onWindowFocusChanged
fonte
Se você criou várias imagens dinamicamente, tente esta:
// inicialize sua matriz de imagens
// cria programaticamente e adiciona à visualização principal
// É isso aí. Feliz codificação.
fonte
meu amigo por isso você não está obtendo a altura da imagem armazenada em db.mas você está obtendo a altura da visualização.para obter a altura da imagem, você precisa criar bitmap a partir da imagem de db, s.and que você pode buscar a altura e a largura da visualização de imagem
fonte