studio - Android ¿Cambia el tamaño de la imagen dependiendo del tamaño de la pantalla?
manual de programacion android pdf (1)
Puede hacer esto con LayoutParams
en el código. Desafortunadamente no hay forma de especificar porcentajes a través de XML (no directamente, puede perder peso, pero eso no siempre ayudará, y no mantendrá su relación de aspecto), pero esto debería funcionar para usted:
//assuming your layout is in a LinearLayout as its root
LinearLayout layout = (LinearLayout)findViewById(R.id.rootlayout);
ImageView image = new ImageView(this);
image.setImageResource(R.drawable.image);
int newHeight = getWindowManager().getDefaultDisplay().getHeight() / 2;
int orgWidth = image.getDrawable().getIntrinsicWidth();
int orgHeight = image.getDrawable().getIntrinsicHeight();
//double check my math, this should be right, though
int newWidth = Math.floor((orgWidth * newHeight) / orgHeight);
//Use RelativeLayout.LayoutParams if your parent is a RelativeLayout
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
newWidth, newHeight);
image.setLayoutParams(params);
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
layout.addView(image);
Puede ser demasiado complicado, tal vez hay una manera más fácil? Esto es lo que primero probaría, sin embargo.
Entonces necesito cambiar el tamaño de una imagen dependiendo del área de la pantalla. La imagen tendrá que ser la mitad de la altura de la pantalla, porque de lo contrario se solapa con el texto.
Así que Altura = 1/2 Altura de pantalla. Ancho = Altura * Relación de aspecto (Solo tratando de mantener la relación de aspecto igual)
Encontré algo que era:
Display myDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width =myDisplay.getWidth();
int height=myDisplay.getHeight();
Pero, ¿cómo cambiaría la altura de la imagen en java? o incluso XML si es posible? Parece que no puedo encontrar una respuesta funcional.