tamaño resolucion reducir quitar pantalla navegador letra google cómo como chrome celular cambiar achicar android imageview

resolucion - reducir pantalla android sin root



Android: Cómo ampliar la imagen rectangular con la misma relación para adaptarse a la pantalla (3)

Cambiar android:scaleType="fitXY" a android:scaleType="centerCrop" para obtener el comportamiento que desea.

Las diferentes opciones de escalado están documentadas en ImageView.ScaleType .

Tengo la siguiente imagen rectangular para establecer en mi aplicación.

Ahora estoy tratando de expandir la imagen con la misma relación en ambos lados hasta que se ajuste a la pantalla. Pero no puedo obtener la imagen esperada.

Hasta ahora mi código es:

<ImageView android:id="@+id/imgid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/shayneward" android:scaleType="fitXY"/>

No importa que la imagen se corte, pero debería expandirse en ambos lados con la misma proporción hasta que se ajuste a la pantalla.


Intenta usar esto:

android:scaleType="centerCrop"

De la documentación de Android, el recorte central hace lo siguiente:

Escale la imagen uniformemente (mantenga la relación de aspecto de la imagen) para que ambas dimensiones (ancho y alto) de la imagen sean iguales o mayores que la dimensión correspondiente de la vista (menos relleno).

Consulte la documentación de ImageView.ScaleType aquí .


si la imagen es demasiado pequeña podría ser un problema porque no está adaptada para ajustarse a las dimensiones de la pantalla.

Yo uso esta clase para resolver este problema:

public class FixedCenterCrop extends ImageView { public FixedCenterCrop(Context context) { super(context); setScaleType(ScaleType.MATRIX); } public FixedCenterCrop(Context context, AttributeSet attrs) { super(context, attrs); setScaleType(ScaleType.MATRIX); } public FixedCenterCrop(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setScaleType(ScaleType.MATRIX); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); recomputeImgMatrix(); } @Override protected boolean setFrame(int l, int t, int r, int b) { recomputeImgMatrix(); return super.setFrame(l, t, r, b); } private void recomputeImgMatrix() { final Matrix matrix = getImageMatrix(); float scale; final int viewWidth = getWidth() - getPaddingLeft() - getPaddingRight(); final int viewHeight = getHeight() - getPaddingTop() - getPaddingBottom(); final int drawableWidth = getDrawable().getIntrinsicWidth(); final int drawableHeight = getDrawable().getIntrinsicHeight(); if (drawableWidth * viewHeight > drawableHeight * viewWidth) { scale = (float) viewHeight / (float) drawableHeight; } else { scale = (float) viewWidth / (float) drawableWidth; } matrix.setScale(scale, scale); matrix.postTranslate((viewWidth - drawableWidth * scale) / 2, (viewHeight - drawableHeight*scale)/2); setImageMatrix(matrix); } }