2016-07-21 2 views
0

У меня есть пользовательский вид Wich содержит некоторые растровые изображения, и я хочу, чтобы установить тени для них, для этого я использую этот код:создать тень для растрового изображения в настраиваемое представление

shadowPaints=new Paint(Paint.ANTI_ALIAS_FLAG); 
shadowPaints.setShadowLayer(10.0f, 3.0f, 2.0f, Color.BLACK); 
canvas.drawBitmap(bmp, matrix, shadowPaints); 
setLayerType(LAYER_TYPE_SOFTWARE, shadowPaints); 

и мой результат enter image description here , как вы можете видеть, что моя тень на самом деле является другим растровым изображением с разными положениями x и y, но я хочу, чтобы моя тень была сплошным цветом растровое изображение.
Может ли кто-нибудь мне помочь?

+0

Не могли бы вы опубликовать весь код своего пользовательского представления? – Divers

+0

Спасибо за внимание. он слишком велик в коде, но если вы покажете мне способ, который работает в простом пользовательском представлении, я уверен, что он будет работать и в моем пользовательском представлении. – max

ответ

1

setShadowLayer на самом деле предназначен для помещения теней на текст.

Если вы уже знаете растровое изображение, которое хотите рисовать, вы можете просто добавить тень в PhotoShop и сразу же нарисовать растровое изображение и тень.

Если вы не хотите, чтобы сделать это, вы могли бы сделать тень, сделав копию изображения, using a PorterDuff filter to make it all grey, use Renderscript to blur the image и нарисуйте его на холсте при х, у компенсировано перед нанесением на реальное изображение сверху из этого.

Лично я считаю, что PhotoShop намного проще.

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