Vista compuesta que no se procesa en Eclipse en modo de edición

Estoy tratando de construir un widget que se compone de unos pocos controles agrupados. Aquí está el widget:

public class VarioView extends RelativeLayout { private int value; private ImageView m_circle; private TextView m_varioText; private TextView m_units; public VarioView(Context context) { this(context,null); } public VarioView(Context context, AttributeSet attr) { this(context,attr, 0); } public VarioView(Context context, AttributeSet attr, int defStyle) { super(context, attr, defStyle); //View.inflate(context, R.layout.vario, this); LayoutInflater li = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); li.inflate(R.layout.vario, this, true); m_circle = (ImageView)this.findViewById(R.id.VarioCircle); m_varioText = (TextView)this.findViewById(R.id.VarioText); //m_circle.setColorFilter(Color.BLUE); } public int getValue() { return value; } public void setValue(int value) { m_varioText.setText(Integer.valueOf(value).toString()); this.value = value; } } 

Aquí está el widget xml

 <merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/VarioCircle" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:contentDescription="Vario Circle" android:src="@drawable/circle3" /> <TextView android:id="@+id/VarioText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="200" android:textColor="#FF0000" android:textSize="60sp" android:textStyle="bold" android:typeface="monospace" /> <TextView android:id="@+id/VarioUnits" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/VarioText" android:layout_centerHorizontal="true" android:layout_marginTop="100dp" android:text="fpm" android:textSize="20sp" /> </RelativeLayout> </merge> 

Aquí está la forma del círculo:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false" android:color="#FF0000" > <size android:height="200dip" android:width="200dip" /> <stroke android:width="10dp" android:color="#FF0000" /> </shape> 

Y en mi opinión principal sólo lo estoy usando así:

  <com.proflite.VarioView android:layout_width="match_parent" android:layout_height="match_parent" /> 

Mi problema es que funciona bien cuando lo ejecuto en el emulador (o dispositivo real), pero cuando intento ir al editor gráfico en Eclipse dibuja un cuadro gris sobre el control y me da esto:

 The following classes could not be instantiated: - com.proflite.VarioView (Open Class, Show Error Log) See the Error Log (Window > Show View) for more details. Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse android.content.res.Resources$NotFoundException: Could not resolve resource value: 0x7F030001. at android.content.res.BridgeResources.throwException(BridgeResources.java:693) at android.content.res.BridgeResources.getLayout(BridgeResources.java:271) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) at com.proflite.VarioView.<init>(VarioView.java:30) at com.proflite.VarioView.<init>(VarioView.java:23) at sun.reflect.NativeConstructorAccessorImpl.newInstance0( at sun.reflect.NativeConstructorAccessorImpl.newInstance( at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( at java.lang.reflect.Constructor.newInstance( at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:413) at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:170) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:746) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:718) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:372) 

Información adicional, comprobar 0x7F030001 se asigna a R.layout.vario y el error está saliendo de esta línea: li.inflate(R.layout.vario, this, true); . Además, si lo cambio a li.inflate(R.layout.vario, this); No da el error, pero el control sólo muestra "en blanco", no se procesa en modo de edición (todavía funciona cuando se ejecuta realmente).

Realmente me gustaría ser capaz de visualizar el diseño en el editor porque toma mucho tiempo para hacer alteraciones de diseño menor y volver a ejecutar en el emulador.

Gracias

** Nota ** el error proviene de la disposición donde se coloca el control. Realmente se procesa correctamente si hago edición gráfica en el propio control.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.