Dotted line is actually not dotted when app is running on real Android device

Issue

in my app I use XML defined vertical dotted line.

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="90"
    android:toDegrees="90">
<shape

    android:shape="line">
    <stroke

        android:width="1dp"
        android:color="@color/light_gray"
        android:dashWidth="2dp"
        android:dashGap="4dp"
        />
</shape>

When I am nitpicking my layout in Android Studio, the line is rendered properly dotted, as it should, but problem comes out when I run the app on real device. The line is just solid with no gaps. What could be the problem? I tried many different devices including those running latest 4.3 Android. It look everywhere the same.

Solution

This is most likely related to hardware acceleration: Dashed lines are not supported in GL mode.

Its documented here:
https://code.google.com/p/android/issues/detail?id=29944

Turn off your HW-acceleration in your AndroidManifest.xml like this:

android:hardwareAccelerated="false"

or:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 

For more information how to use first solution:
http://developer.android.com/guide/topics/graphics/hardware-accel.html

Answered By – stoefln

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published