Intereting Posts
Как мы можем получить уведомление, если у телефона есть доступ в Интернет? NullPointerException в onCreate () при использовании findViewById – setContentView используется раньше? Динамическое использование RelativeLayout и установка полей в px, dp, inch, mm Кнопка входа в систему facebook setfragment error Как получить представление в контексте метода TextWatcher? Установите плагин ADT в Eclipse Плавающая кнопка Действие Цвет рамки не меняется Создавайте загружаемую настраиваемую тему и применяйте ее во время выполнения Высота строки состояния в Android Можно ли постоянно тестировать тесты на Android Studio? Невозможно добавить учетную запись google в эмулятор android Как я могу динамически выбирать, какую активность запускать при открытии приложения? Встроенное видео youtube на сенсорном устройстве, отображающее контекстное меню контекстного меню автоматически Константные строковые параметры и компилятор Delphi XE5 для Android Получение информации о продуктах, таких как имя, цена и т. Д. С использованием номера штрих-кода

Разница между API AndroidShadowLayer

Я разрабатываю компонент пользовательского представления для своего приложения, и я борюсь с добавлением тени в круг.

Вот код моего класса, расширяющий View

public class ChartView extends View { public ChartView(Context context, AttributeSet attributeSet){ super(context, attributeSet); init(); } Paint paint; public void init(){ paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.WHITE); paint.setStyle(Paint.Style.FILL); paint.setShadowLayer(30, 0, 0, Color.RED); } @Override protected void onDraw(Canvas canvas) { canvas.drawCircle(getWidth()/2, getHeight()/2,50, paint); } } 

Тем не менее, я заметил, что в зависимости от API, большое влияние оказывает на shadowLayer.

Вот результат с

 <uses-sdk android:targetSdkVersion="13"/> 

Введите описание изображения здесь

И вот результат с

 <uses-sdk android:targetSdkVersion="14"/> //Higher target API yields the same output. 

Введите описание изображения здесь

Любая идея, как преодолеть это нежелательное поведение?

С наилучшими пожеланиями

Solutions Collecting From Web of "Разница между API AndroidShadowLayer"

setShadowLayer() поддерживается только в том случае, если аппаратное ускорение setShadowLayer() . Аппаратное ускорение targetSdk=14 по умолчанию, когда targetSdk=14 или выше. myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) решение заключается в том, чтобы поместить ваш вид в программный уровень: myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) .