2015-01-13 2 views
5

Я столкнулся с проблемой с теневым цветом, метод setShadowLayer игнорирует shadowColor (здесь я указал Color.RED в моем коде) вместо setShadowLayer берет цвет краски (здесь Color.argb (255, 50) , 153, 187)). Ниже мои настройки краски и прилагается изображение для справки, спасибо enter image description hereAndroid - paint.setShadowLayer Игнорирование shadowColor

paint.setAntiAlias(true); 
    paint.setColor(Color.argb(255, 50, 153, 187)); 
    paint.setStyle(Paint.Style.STROKE); 
    paint.setStrokeJoin(Paint.Join.ROUND); 
    paint.setStrokeWidth(STROKE_WIDTH); 
    paint.setStrokeCap(Paint.Cap.ROUND); 
    paint.setShadowLayer(7.0f, 20.0f, 2.0f, Color.RED); 
+1

shadowLayer работает только если аппаратное ускорение отключено. Попробуйте добавить 'if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.HONEYCOMB) { setLayerType (LAYER_TYPE_SOFTWARE, краска); } ' – Blackbelt

+0

Отлично работает с вашим решением. Пожалуйста, добавьте его в ответ, это будет полезно для других людей. Спасибо –

+1

сделано. Добро пожаловать – Blackbelt

ответ

10

shadowLayer работает только это аппаратное ускорение отключено. Добавить

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     setLayerType(LAYER_TYPE_SOFTWARE, paint); 
} 

и он должен работать

Смежные вопросы