Em Android, eu definido um ImageView
é layout_width
para ser fill_parent
(que ocupa toda a largura do telefone).
Se a imagem que eu coloco ImageView
for maior que a layout_width
, o Android a dimensionará, certo? Mas e a altura? Quando o Android dimensiona a imagem, ele mantém a proporção?
O que eu descobri é que há algum espaço em branco na parte superior e inferior do ImageView
quando o Android dimensiona uma imagem que é maior que a ImageView
. Isso é verdade? Se sim, como posso eliminar esse espaço em branco?
fonte
setImageBitmap
é o mesmo queandroid:src="..."
esetBackground...
éandroid:background="..."
image.setImageDrawable(...)
estáandroid:src="..."
em xml.android:adjustViewBounds
foi a última peça do meu quebra-cabeça, obrigado!Veja
android:adjustViewBounds
.fonte
Para qualquer pessoa que tenha esse problema em particular. Você tem uma
ImageView
largurafill_parent
e uma altura dimensionadas proporcionalmente:Adicione estes dois atributos ao seu
ImageView
:E defina a
ImageView
largurafill_parent
e a altura comowrap_content
.Além disso, se você não deseja que sua imagem seja cortada, tente o seguinte:
fonte
View
)". AFAICT nenhuma outra visualização possuiadjustViewBounds
ouscaleType
atributos.Se você deseja um
ImageView
que seja dimensionado para cima e para baixo, mantendo a proporção adequada, adicione-o ao seu XML:Adicione isto ao seu código:
Demorei um pouco para que isso funcionasse, mas isso parece funcionar nos casos em que a imagem é menor que a largura da tela e maior que a largura da tela e não encaixa na imagem.
fonte
Isso funcionou para mim:
fonte
isso resolveu meu problema
fonte
Abaixo do código Trabalhando para a imagem em escala como proporção:
fonte
Dê uma olhada no ImageView.ScaleType para controlar e entender como o redimensionamento acontece em um
ImageView
. Quando a imagem é redimensionada (mantendo a proporção), as chances são de que a altura ou a largura da imagem se tornem menores queImageView
as dimensões.fonte
Use estas propriedades no ImageView para manter a proporção:
fonte
É assim que funcionou para mim dentro de um ConstraintLayout:
Em seguida, no código, defino o drawable como:
Isso se ajusta bem à imagem, de acordo com sua proporção e a mantém no centro.
fonte
Eu tenho uma imagem menor que a tela. Para esticá-lo proporcionalmente ao máximo e centralizado na visualização, tive que usar o seguinte código:
No entanto, lembre-se de que, se você tiver um layout relativo e alguns elementos definidos acima ou abaixo do ImageView, eles provavelmente serão sobrepostos pela imagem.
fonte
Se a qualidade da imagem diminuir em: use
ao invés de
fonte
Para quem deseja que a imagem se ajuste exatamente à visualização de imagem com o dimensionamento adequado e sem uso de recorte
onde imageView é a visualização que representa seu ImageView
fonte
Você pode calcular a largura da tela. E você pode escalar bitmap.
calcular a largura da tela e a altura da imagem em escala pela largura da tela.
Depois que você pode dimensionar o bitmap.
fonte
Ao fazer isso programaticamente, chame os setters na ordem correta:
fonte
Se você deseja que sua imagem ocupe o espaço máximo possível, a melhor opção seria
fonte
Você não precisa de nenhum código java. Você só tem de :
A chave está no pai de correspondência para largura e altura
fonte
Tente usar o
android:layout_gravity
ImageView:O exemplo acima funcionou para mim.
fonte
Eu tenho um algoritmo para dimensionar um bitmap para melhor ajustar as dimensões do contêiner, mantendo sua proporção. Encontre minha solução aqui
Espero que isso ajude alguém na estrada!
fonte
Eu uso isso:
fonte
no caso de usar
cardview
para arredondamentoimageview
e fixoandroid:layout_height
para cabeçalho, isso funcionou para mim carregar a imagem comGlide
fonte
Você pode dimensionar a imagem que também reduzirá o tamanho da sua imagem. Existe uma biblioteca para você baixar e usar. https://github.com/niraj124124/Images-Files-scale-and-compress.git
Como usar 1) Importe o compressor-v1.0. jar para o seu projeto. 2) Adicione o código de amostra abaixo para testar. ResizeLimiter resize = ImageResizer.build (); resize.scale ("inputImagePath", "outputImagePath", imageWidth, imageHeight); Muitos outros métodos existem de acordo com sua exigência
fonte
Passe seu ImageView e, com base na altura e largura da tela, você poderá
fonte
Resposta rápida:
fonte
fonte