2017-02-07 8 views
0

난과 같이, 프로그램 원 비트 맵을 생성했다 :프로그래밍 방식으로 생성 된 비트 맵을보기에 배치하는 방법은 무엇입니까?

private Bitmap drawDotCircle() { 
     int circleSize = 100; 
     circleBitmap = Bitmap.createBitmap(
       circleSize, 
       circleSize, 
       Bitmap.Config.ARGB_8888 
     ); 

     canvas = new Canvas(circleBitmap); 
     CanvasRadius = Math.min(canvas.getWidth(), canvas.getHeight()/2); 

     // Create a Paint object used to paint the circle 
     paint = new Paint(); 
     paint.setStyle(Paint.Style.FILL); 
     paint.setColor(Color.RED); 
     paint.setAntiAlias(true); 

     canvas.drawCircle(
       canvas.getWidth()/2, 
       canvas.getHeight()/2, 
       CanvasRadius - CanvasPadding, 
       paint 
     ); 

     return circleBitmap; 
    } 

I는 I를 계산 한 절대 X 및 Y에 배치하고자; 다음과 같이 화면의 절대 중심을 가정합니다.

int dotX =getResources().getDisplayMetrics().widthPixels/2; 
int dotY = getResources().getDisplayMetrics().heightPixels/2; 

원이 뷰의 중앙에 배치되도록하려면 어떻게해야합니까? 나는 다음과 같은 코드를 시도하지만 원은 어떤 이유로 오프 센터 항상 :

 RelativeLayout.LayoutParams layoutParams = 
       new RelativeLayout.LayoutParams(circleDot.getHeight(), circleDot.getHeight()); 

// Setting position of our ImageView 
     layoutParams.leftMargin = dotX; 
     layoutParams.topMargin = dotY; 

// Finally Adding the imageView to RelativeLayout and its position 
     relativeLayout.addView(dotView, layoutParams); 

답변

0

leftMargin이해야 할 DOTX - IMAGEWIDTH/2 및 topMargin이어야 도티 - imageHeight/2

시도하는

+0

그래도 이미지를 중앙에 배치 할 수 없습니다. 다음은 원래의 x 및 y 계산을 사용하여 배치 된 빨간색 점의 스크린 샷입니다 : http://i.imgur.com/t8VGB7c.jpg 그리고 제안 된 계산의 스크린 샷 : http : //i.imgur.com /V9X2zdW.jpg 두 경우 모두 점이 중앙에서 벗어납니다. – damememan