¿Cómo puedo recortar un bitmap para ImageView?

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)

    

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

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 🙂

También puede recortar imágenes mediante progtwigció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.

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

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);