una studio soporte resolución resolucion programacion para pantallas pantalla móviles multiples layouts diferentes desarrollo cómo curso aplicación aplicaciones aplicacion adaptar android imageview screen-size

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.