studio programacion móviles desarrollo curso aplicaciones java android imageview crop

java - programacion - curso android desarrollo de aplicaciones móviles pdf



¿Cómo puedo recortar un mapa de bits para ImageView? (4)

Hazlo android:scaleType="fitStart" y para android:layout_height="400px"

Sé que esto debería ser simple, pero android:scaleType="centerCrop" no android:scaleType="centerCrop" la imagen

Obtuve una imagen de 1950 píxeles de ancho y necesito que se recorta por el ancho de los padres. Pero android:scaleType="centerCrop" no android:scaleType="centerCrop" la imagen. ¿Qué debo hacer en el diseño para mostrar solo los primeros 400 píxeles , por ejemplo, o el ancho de la pantalla / principal es

Perdón por una pregunta simple. Intenté buscarla en Google, solo preguntas complicadas allí. Y soy nuevo, así que no te desanimes, por favor)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background_color"> <ImageView android:id="@+id/ver_bottompanelprayer" android:layout_width="match_parent" android:layout_height="227px" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:scaleType="matrix" android:background="@drawable/ver_bottom_panel_tiled_long" /> </RelativeLayout>

si solo hay una manera de cortarlo programáticamente, por favor dame un consejo con un método


Puede hacer esto programáticamente (esto asegura que obtiene el alto / ancho correcto):

ImageView image = (ImageView) findVieById(R.id.ver_bottompanelprayer); DisplayMetrics dm = getResources().getDisplayMetrics(); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(1950, dm.heightPixels); params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); params.addRule(RelativeLayout.ALIGN_PARENT_TOP); image.setLayoutParams(params); image.setScaleType(ScaleType.FIT_XY);


También puede recortar imágenes mediante programación utilizando createBitmap .

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); bm = Bitmap.createBitmap(bm, 0, 0, 400, 400); your_imageview.setImageBitmap(bm);

Aquí 400 es su ancho y altura puede cambiar según su requisito.


De acuerdo, pegaré el comentario como respuesta :) ->

RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl1); final Options bitmapOptions=new Options(); DisplayMetrics metrics = getResources().getDisplayMetrics(); bitmapOptions.inDensity = metrics.densityDpi; bitmapOptions.inTargetDensity=1; /*`final` modifier might be necessary for the Bitmap*/ Bitmap bmp= BitmapFactory.decodeResource(getResources(), R.drawable.ver_bottom_panel_tiled_long, bitmapOptions); bmp.setDensity(Bitmap.DENSITY_NONE); bmp = Bitmap.createBitmap(bmp, 0, 0, rl.getWidth(), bmp.getHeight());

Luego en el código:

ImageView iv = (ImageView)v.findViewById(R.id.ver_bottompanelprayer); if (iv != null){ iv.setImageBitmap(bmp); }

Saludos :)