6

나는 사각형 이미지가 있다고 상상해보십시오. 어떻게 다음 스타일을 만들 수 있습니까? 원 화상에 자르기 I 의미 enter image description here이미지에서 원 clippath를 만드는 방법은 무엇입니까?

enter image description here

는, 테두리, 음영 및 총/광택 효과를 추가한다. 지금까지 이미지를 자르려면이 스 니펫 코드를 사용해 보았습니다 : Cropping circular area from bitmap in Android. Android에서 나머지 구성 요소를 수행하는 방법을 알지 못합니다.

+0

둥근 구석을 게시하여 도움이 되길 바랍니다. http://stackoverflow.com/a/19858771/1294681 – VinceStyling

답변

16

이 효과를 달성하는 쉬운 방법은 Canvas.drawCircle()를 사용하는 것입니다 그리고 BitmapShader :

BitmapShader s = new BitmapShader(myPhoto, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 

Paint p = new Paint(); 
p.setShader(s); 

myCanvas.drawCircle(centerX, centerY, radius, p); 

이 그림자를 할 단순히 오프 스크린에 영향을 그릴 경우에만 작동합니다 (페인트에 Paint.setShadowLayer()를 호출하려면 Bitmap 또는 View이 소프트웨어 계층을 사용하는 경우 - View.setLayerType() -을 호출하여 설정).

Paint.Style.STROKE 스타일 (Paint.setStyle()을 호출하여 설정할 수 있음)을 사용하여 위에 다른 원을 그려 테두리를 그릴 수 있습니다.

마지막으로 원형, 타원 또는 Path을 맨 처음 원 위에 그리면 광택을 그릴 수 있습니다. 페인트에 LinearGradient 쉐이더를 사용해야하고 광택을 잘라야합니다. 두 가지 방법으로이 작업을 수행 할 수 있습니다

당신은 내가 추천 할 것입니다 무엇입니까 Bitmap로 전체 효과를 그리는 경우
  1. , 단순히 페인트의 Xfermodenew PorterDuffXfermode(PorterDuff.Mode.SRC_IN)로 설정합니다.
  2. 화면에 직접 효과를 그리는 경우 Canvas.clipPath()을 사용하여 원형 클립을 설정할 수 있습니다. 이것은 Android 4.3에서만 하드웨어 가속으로 작동합니다.
관련 문제