Infla programáticamente la vista con medidas predefinidas
Tengo un recurso de diseño como este y quiero inflarlo con el ancho y la altura del diseño:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="75px"
android:layout_height="25px">
<TextView
android:id="@+id/drawable_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Name" />
<TextView
android:id="@+id/drawable_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/drawable_name"
android:layout_alignParentLeft="true"
android:gravity="center_horizontal"
android:layout_below="@+id/drawable_name"
android:text="Some Text" />
</RelativeLayout>
La Vista podría ser cualquier cosa, y la estoy convirtiendo a Bitmap.
private Bitmap getBitmap(View v){
v.measure(MeasureSpec.makeMeasureSpec(mDrawableWidth, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mDrawableHeight, MeasureSpec.EXACTLY));
v.layout(0, 0, mDrawableWidth, mDrawableHeight);
Bitmap returnedBitmap = Bitmap.createBitmap(mDrawableWidth, mDrawableHeight,Bitmap.Config.ARGB_8888);
Canvas c=new Canvas(returnedBitmap);
v.draw(c);
return returnedBitmap;
}
Hasta ahora, tengo el Ancho y la Altura codificados y quiero poder hacerlo programáticamente, accediendo allayout_width
ylayout_height
. ¿Hay alguna manera de lograr esto? Si hay otra forma de inflar la vista con estos valores sin especificarlos en la medida, hágamelo saber.
Si creo una vista personalizada, ¿hay alguna posibilidad de especificar el ancho y la altura fijos?