2017-02-07 3 views
0

Ich habe programmatisch einen Kreis Bitmap erzeugt wie folgt:Wie platziere ich eine programmatisch erzeugte Bitmap in einer Ansicht?

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; 
    } 

Ich möchte es bei einem absoluten X- und Y platzieren, die ich habe berechnet; lassen Sie uns ihre die absolute Mitte des Bildschirms übernehmen wie folgt:

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

Wie stelle ich sicher, dass der Kreis in der Ansicht zentriert ist? Ich habe den folgenden Code versucht, aber der Kreis immer nicht in der Mitte aus irgendeinem Grund:

 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); 

Antwort

0

Die leftmargin sollte sein DOTX - imagewidth/2 und topmargin sollte Doty - imageheight/2

Versuchen Sie das mal

+0

Dadurch wird das Bild immer noch nicht zentriert. Hier ist ein Screenshot des roten Punktes, der mit meiner originalen x & y-Berechnung positioniert wird: http://i.imgur.com/t8VGB7.jpg, und dann ein Screenshot Ihrer vorgeschlagenen Berechnung: http: //i.imgur.com /V9X2zdW.jpg In beiden Fällen ist der Punkt außermittig – damememan

Verwandte Themen