23

I'm using Eclipse and I just created a home page (menu) with 2 image buttons, but I am getting this error:

The graphics preview in the layout editor may not be accurate:

Paint.setShadowLayer is not supported.

What does it mean? And how can I solve it?

I am using API 21.

Pang
  • 9,564
  • 146
  • 81
  • 122
Zee
  • 249
  • 1
  • 2
  • 6

3 Answers3

30

It means the preview doesn't know how to implement setShadowLayer. This means the preview won't look exactly like the result rendered on the device. Which is one of many reasons why you shouldn't trust the preview app- always test your layouts on a physical device before assuming they're done.

Gabe Sechan
  • 90,003
  • 9
  • 87
  • 127
  • thanks for the fast replay, so you mean if I tried it on my phone the images will be shown normally? – Zee Jan 08 '15 at 21:38
  • 1
    This answer applies to EVERYTHING that the preview does. Of course you should test it. But what exactly is happening to cause the setShadowLayer to not be implemented? The error usually doesn't show, which means that something is different...what? – SMBiggs Dec 04 '15 at 18:39
  • 12
    The devs got lazy and didn't even try to implement it, they just put in the warning instead. – Gabe Sechan Dec 04 '15 at 18:49
2

In my case it was a new component, a EditText with support of showing/hiding a password. It appeared in support library v.24.2.0. I mean:

<android.support.design.widget.TextInputLayout
    android:id="@+id/password_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="0dp"
    app:passwordToggleEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:hint="@string/password"
        android:inputType="textPassword"
        tools:text="aaaaaaaaaaaaaaaaaaa"/>
</android.support.design.widget.TextInputLayout>

Of course, on a real device it is shown right (and in preview also).

CoolMind
  • 26,736
  • 15
  • 188
  • 224
  • I just stumbled over this with design / appcompat libs at 23.4.0. If I force a progress bar to be visible the preview goes away and this error "Paint.setShadowLayer is not supported" is shown... This is with a coordinator layout with toolbar, nested scroll view, and FAB. Guess I will try the latest versions to see what happens. – Jim Andreas Apr 13 '17 at 14:39
  • @JimAndreas, thank you. If you wish, you can add a new answer below. – CoolMind Apr 15 '17 at 10:26
1

As the first answer is true, but for fixing this issue you can try this (If you are using android studio) :

File > Invalidate Caches / Restart... > Invalidate and Restart
Saman Sattari
  • 3,322
  • 6
  • 30
  • 46