No Android, devido à diversidade de telefones celulares com diferentes pixels, para uma imagem, haverá diferenças na exibição de diferentes telefones celulares devido a diferentes pixels.
Há um requisito de preencher a tela inteira com uma largura de imagem e exibi -la.
O que muitas vezes fazemos pode ser processar imagens nas duas maneiras a seguir.
Defina o atributo layout_parent = "match_parent" e layout_parent = "wrap_content" através do <ImageView> e use o atributo Scaletype de <ImageView> para escala.
- ScaleType = "Fitxy": Quando definido para esta propriedade, fará com que a imagem se estique horizontalmente, fazendo com que a imagem se deforme e, se houver uma fonte na imagem, isso será uma coisa ruim.
- ScaleType = "Centercrop": deve ser bom escalar na mesma proporção, mas é muito embaraçoso, ainda não funciona. Ao processar a imagem, o tamanho da imagem será obtido primeiro e, em seguida, a largura e a altura da imagem serão determinadas antes da escala. Dessa forma, após a determinação do alcance da imagem, o ponto central da imagem é escalado igualmente até que a largura preencha completamente a tela. Isso é muito embaraçoso, as partes superior e inferior da imagem serão cortadas, para que a imagem não seja totalmente exibida e ainda não é o que queremos.
Minha abordagem é obter a imagem após a dimensionamento do código e, em seguida, adicionar a imagem definindo o backgroud, que resolve o problema. Então o código acima:
// Obtenha a resolução da imagem, obtenha a largura DisplayMetrics dm = new DisplayMetrics (); getWindowManager (). getDefaultDisplay (). getMetrics (dm); int msCreenwidth = dm.widthpixels; // obtendo largura de resolução da tela int msCreenHeight = dm.HeightPixels; // carrega a imagem bitmap bitmap = bitmapFactory.DecODeResource (getResources (), r.Drawable.bank_help); int bitmapWidth = bitmap.getWidth (); int bitMaphEight = bitmap.getHeight (); // Obtenha a proporção de largura da imagem float num = mscreenwidth /(float) bitmapwidth; Matriz matrix = new Matrix (); matrix.postscale (num, num); // gerar o objeto de bitmap em escala RECENDIMENTMAPBITMAP = bitmap.createbitmap (bitmap, 0, 0, bitmapwidth, bitmapheight, matriz, true);
O código acima é dividido nas seguintes etapas
1. Obtenha a resolução da tela.
2. Obtenha a imagem e meça a largura e a altura da imagem.
3. Obtenha a proporção de zoom correspondente através da largura da tela/largura da imagem
4. Crie um objeto Matrix e determine a escala. (PS: essa coisa é muito boa e o objeto também é usado para modificá -lo na cor do gradiente na frente)
5. Gere a imagem através do método bitmap.createbitmap (). (PS: o último parâmetro deve ser passado verdadeiro. Se false for passado, a imagem em zoom não será exibida claramente)
O exposto acima é uma introdução às operações relacionadas ao processamento de imagens Java, espero que seja útil para o aprendizado de todos.