Ich versuche, einen Text in Bitmap horizontal und vertikal auszurichten, ich lese mehrere Post, aber ich kann keine Lösung finden. Die Bitmap ist ein einfaches Bild eines Kreises. Ich poste meinen aktuellen Code. Mehr oder weniger funktioniert es, aber der Text ist nicht perfekt zentriert, es scheint ein bisschen links und ein bisschen oben, ich meine, es scheint, ich muss einen Offset hinzufügen, um es nach rechts und nach unten zu bewegen.Center Text vertikal und horizontal mit Leinwand
public static float convertDpToPixel(float dp, Context context) {
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float px = dp * (metrics.densityDpi/160f);
return px;
}
v = (ImageView) findViewById(R.id.imageView1);
Bitmap b = BitmapFactory.decodeResource(getResources(),
R.drawable.marker).copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(b);
Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
textPaint.setARGB(255, 0, 0, 0);
textPaint.setTextAlign(Align.CENTER);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
textPaint.setTextSize(convertDpToPixel(9, this));
String text = "30";
int xPos = (canvas.getWidth()/2);
int yPos = (int) ((canvas.getHeight()/2) - ((textPaint.descent() +
textPaint.ascent())/2)) ;
canvas.drawText(text, xPos, yPos, textPaint);
v.setImageBitmap(b);
Ein bisschen besser jetzt der Code: int xPos = (canvas.getWidth()/2) - ((r.width())/2); int yPos = (canvas.getHeight()/2) + ((r.height())/2); aber das x ist nicht mehr ausgerichtet, jetzt habe ich den Text auf der linken Seite verschoben. – greywolf82
Siehe bearbeitete Antwort – Merlevede
Ah ok, jetzt funktioniert es, danke !!!!!!! – greywolf82