Я использую эту библиотеку RoundedCorners (на основе Romain Guy post), который позволяет установить как контурную границу, так и округленное прямоугольное изображение в образ.
Мне нужно добавить внешнюю тень (это означает, что за пределами отображаемого изображения) к изображению, которое отображается (скажем, в направлении юго-восток). Я решил, что, поскольку граница является большей частью того, что показано, я бы добавил к ней тень вместо изображения, используя следующий дополнительный код в RoundedDrawable:
mBorderPaint.setShadowLayer(shadowRadius, shadowDx, shadowDy, shadowColor);
Конечно, я также добавил поля и заполнил их значениями.
Проблема в том, что тень, похоже, игнорирует значения dx, dy, которые я дал ей, и она просто устанавливает фон для всего изображения.
Я читал здесь, и некоторые люди утверждают, что использование setShadowLayer в новом API для Android (от 11+) не будет работать, кроме текстов, потому что оно пытается использовать графический процессор, но я тоже тестировал его на API10, и он имел тот же результат.
Как это могло быть? Что мне делать, чтобы исправить это или использовать альтернативу?
Я предполагаю, что я мог бы добавить новую краску, подобную той, которая используется для границы, но это будет означать, что мне нужно изменить намного больше кода, который тоже зависит от него (или вообще мне нужно это делать?). Кроме того, я мог бы сделать это немного уродливее, чем то, что показано для реальных теней.