2014-06-12 5 views
0

나는 원이 있으며 원에 이미지를 배치하고 싶습니다.원에 이미지 배치

각도와 원의 반지름을 알고 이미지를 배치하기 위해 x와 y 좌표를 가져와야합니다.

이미지가 원형이 아니라 IN이어야합니다.

코드 :

private void placeImageOnCircle(ImageView circle, RelativeLayout imageToMove, int angle) 
{ 
    int radius = circle.getWidth()/2; 

    // get marginX and marginY... 

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.setMargins(marginX, marginY, 0, 0); 
    imageToMove.setLayoutParams(params); 
} 
+0

당신이 대신 IN 무슨 뜻인지 명확히 수 있을까? – tritop

+0

예, ON은 원 테두리에 있음을 의미합니다. –

+0

서클에 이미지를 올려 놓고 그 높이와 너비를 변경하면 어색해 보이지 않는 이유는 무엇입니까? –

답변

1

당신은 당신의 원의 x와 y를 알고 당신이 반경을 알고있다. 그래서 당신은 3시에 x + 반지름을, 12시에 y + 반지름을 알 수 있습니다.

그러나 다른 점수를 얻으려면 수학이 필요합니다.

x = 반경 * cos (각) + xCenter;
y = 반경 * sin (각도) + y 중심;

각도는 라디안이어야합니다. Find point on Circle on Android
- - Calculate points around a circle in android
-
처럼

x = radius * Math.cos(Math.toRadians(angle)) + xCenter 
y = radius * Math.sin(Math.toRadians(angle)) + yCenter 

은 또한 그것에 대해 다른 SO 질문 SE는 그래서 당신이 할 수있다 Getting Coordinates of a Point in a circle

+0

완벽, 덕분에 당신의 도움;) –

+0

아마도 xCenter를 뺄, 그것을 추가하지? –

+0

정말이에요? 오늘 수식과 그 인기가 좋지는 않지만, +로 테스트 할 때 올바른 숫자를 얻은 것 같습니다. 그 대답을 편집 할 수 있도록 내가 잘못했는지 확신 할 수 있는지 말해주세요. – tritop