2014-11-21 2 views
0

불투명도를 설정하는 조언이 필요합니다. 이 PictureDrawable에 구현되어 있지 않으므로 PictureDrawable 개체로 설정해야합니다. 제 경우는 this one과 비슷합니다 (라이브러리를 사용하는 원시 리소스의 SVG에서 드로어 블을 얻을 수도 있습니다). 하지만 불투명도를 동적으로 변경하고 싶기 때문에 솔루션을 사용할 수 없습니다 (생성시 색상 필터 적용이 아닌).불투명도를 PictureDrawable로 설정

SurfaceView에 그림을 그리는 경우 컨텍스트가 여러 드로어 블을 애니메이션 처리합니다.

이 상황에서 좋은 해결책이 될 수있는 것은 무엇입니까?

감사합니다.

+1

Canvas.saveLayerAlpha를 사용하면이 메소드는 AlphaAnimations을 그릴 때 이전 v4 장치에서 사용됩니다. – pskink

답변

0

신용은 @pskink로 이동합니다. 더 자세한 내용은 조금만 설명 드리겠습니다.

int width = drawable.getIntrinsicWidth(); 
int height = drawable.getIntrinsicHeight(); 

canvas.saveLayerAlpha(x, y, x + width, y + height, opacity, 
            Canvas.HAS_ALPHA_LAYER_SAVE_FLAG); 

drawable.setBounds(x, y, x + width, y + height); 
drawable.draw(canvas); 
canvas.restore(); 

This answersaveLayerAlpha() 사용에 대한 좋은 지침을 제공 이것은 내가 (0 ~ 255 int opacity 변경 반복적으로 내 경우) onDraw(Canvas canvas) 방법으로 할 것입니다.

관련 문제