Я использовал 2 разных метода (в зависимости от того, что лучше в конкретном случае) -Различные ресурсы для разных экранов.
-Недостаток: значительно увеличит размер вашего приложения -Преимущество: это довольно удобно для использования
- Расширьте Drawable и передайте свой конструктор Фону и альфа-карте (Alphamap в вашем случае будет девятисоставным с 0xffffffff ouside и 0x00ffffff в качестве цвета для вашего круга).Переопределить рисование ().Создать ComposeShader (drawable1, drawable2, PorterDuff.Mode.MULTIPLY);Установите шейдер на краску и нарисуйте его на холсте.
- Недостаток: не очень удобно - поддерживает маленький размер приложения:)