Используйте флаг hardwareAcceleration с Canvas.clipPath - PullRequest
3 голосов
/ 13 сентября 2011

Я портирую проект, созданный для Galaxy Tab 1, для Galaxy Tab 2, но apk работает медленно, поэтому я добавил флажок hardwareAccelerated на AndroidManifest.XML нового приложения.

Но при запуске выдает следующую ошибку:

java.lang.UnsupportedOperationException
     at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:287)
     at br.com.iba.view.PageCurlView.drawCurl(PageCurlView.java:284)
     at br.com.iba.view.PageCurlView.onDraw(PageCurlView.java:353)
     at android.view.View.draw(View.java:9291)

Ответы [ 2 ]

11 голосов
/ 03 октября 2011

У меня была похожая проблема в моем проекте с ImageView, который не поддерживает аппаратное ускорение. Я обошел эту проблему с помощью этого кода:

mImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Это работает для меня.

3 голосов
/ 14 января 2013

Чтобы предотвратить проблемы, связанные с версией SDK, вы должны использовать:

if (android.os.Build.VERSION.SDK_INT >= 11) {
    mapView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
} 

Я получил java.lang.NoSuchMethodError: setLayerType.

Этот пост только для разъяснения вещей.

...