¿Cómo se establece programáticamente el ancho de un ImageView dentro de un TableRow? NO quiero que cambie el ancho de la celda, solo el ancho de la imagen dentro de la celda.Android: cómo establecer programáticamente el ancho de ImageView dentro de TableRow
Disposición: (Los puntos suspensivos están ahí para reducir el código)
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<TableRow android:gravity="center_vertical">
<Button>...</Button>
<ImageView
android:id="@+id/fruit"
android:layout_width="120dp"
android:layout_height="44dp"
android:src="@drawable/apple"
android:scaleType="matrix"
></ImageView>
<Button>...</Button>
</TableRow>
<TableRow>...</TableRow>
</TableLayout>
Java:
ImageView iv = (ImageView) findViewById(R.id.fruit);
LayoutParams frame = iv.getLayoutParams();
frame.width = 100;
iv.setLayoutParams(frame);
EDITAR: Quiero que la imagen a recortar dentro de los límites que configuro y que la celda de la tabla sea el ancho original. A continuación se muestra el ejemplo de código que funcionó para mí gracias a la sugerencia de parag:
Bitmap bmp = BitmapFactory.decodeResource(getResources() , R.drawable.apple);
int width = 50;
int height = 44;
Bitmap resizedbitmap = Bitmap.createBitmap(bmp, iv.getScrollX(), iv.getScrollY(), width, height);
iv.setImageBitmap(resizedbitmap);
exactamente lo que necesitaba – keybee