Android dashed line drawable potential ICS bug

15,549

Solution 1

This issue is logged here http://code.google.com/p/android/issues/detail?id=29944 Turning off hardware acceleration will show the dashed line.

Solution 2

The issue logged at http://code.google.com/p/android/issues/detail?id=29944 has a comment of applying the following to your view:

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

This worked for me.

Share:
15,549
Chris Horner
Author by

Chris Horner

Updated on July 13, 2022

Comments

  • Chris Horner
    Chris Horner almost 2 years

    The following is a dashed line, defined as a ShapeDrawable in XML:

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

    This will draw a nice dotted line on several Gingerbread phones. On the Galaxy Nexus however, the dashes appear to be ignored and the shape is drawn as a contiguous line. Even more curious, an emulator running ICS will render it correctly with the dashes, it's just the physical device screwing up.

    Am I missing something obvious? Or is this really a bug with Android 4.0? The line is used in several places. Here is an example 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" />