2012-06-01 13 views
22

La siguiente es una línea discontinua, que se define como un ShapeDrawable en XML:Android La línea dibujable potencial de errores ICS

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 

    <size 
     android:height="2dp" 
     android:width="700dp" /> 

    <stroke 
     android:width="1dp" 
     android:color="@android:color/black" 
     android:dashWidth="1dp" 
     android:dashGap="2dp" /> 

</shape> 

Para ello se utilizará una buena línea de puntos en varios teléfonos de pan de jengibre. En el Galaxy Nexus, sin embargo, los guiones parecen ignorados y la forma se dibuja como una línea contigua. Aún más curioso, un emulador que ejecuta ICS lo renderizará correctamente con los guiones, es solo el dispositivo físico que lo está jodiendo.

¿Me falta algo obvio? ¿O es realmente un error con Android 4.0? La línea se usa en varios lugares. He aquí un ejemplo ImageView:

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="@dimen/observation_observe_side_margin" 
    android:layout_marginRight="@dimen/observation_observe_side_margin" 
    android:layout_marginTop="16dp" 
    android:contentDescription="@string/dotted_line_description" 
    android:src="@drawable/dotted_line" /> 
+0

Estoy notando el mismo problema en mi aplicación en el Galaxy Nexus. En mis otros dispositivos dispositivos 2.x aparece como punteado. –

+0

duplicado de http://stackoverflow.com/a/26296229/185022 –

+0

posible duplicado de [La línea punteada no está punteada cuando la aplicación se ejecuta en un dispositivo Android real] (http://stackoverflow.com/questions/18931679/dotted -line-is-actually-not-dotted-when-app-is-running-on-real-android-device) –

Respuesta

43

La cuestión conectado al http://code.google.com/p/android/issues/detail?id=29944 tiene un comentario de aplicar la siguiente a la vista:

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 

Esto funcionó para mí.

+27

Tenga en cuenta que si no desea editar la vista mediante programación, también puede agregar el atributo 'android: layerType =" software "' a la definición XML. – Arkaaito

+0

API 11+ http://developer.android.com/reference/android/view/View.html#setLayerType – Dori

+0

por lo que en el ejemplo de la pregunta. ¿Establecerías 'android: layerType =" software "' en 'ImageView' o' shape'? –

Cuestiones relacionadas