Я пытаюсь выровнять текст в растровом изображении по горизонтали и вертикали, я прочитал несколько сообщений, но я не могу найти решение. Растровое изображение представляет собой простой образ круга. Я отправляю свой текущий код. Более или менее это работает, но текст не идеально по центру, кажется немного слева и немного сверху, я имею в виду, мне кажется, что мне нужно добавить смещение, чтобы переместить его вправо и вправо.текст центра вертикально и горизонтально с холстом
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);
Немного лучше код: INT XPOS = (canvas.getWidth()/2) - ((r.width())/2); int yPos = (canvas.getHeight()/2) + ((r.height())/2); но x больше не выравнивается, теперь у меня есть текст, перемещенный слева. – greywolf82
См. Отредактированный ответ – Merlevede
Ах, ладно, теперь это работает, спасибо !!!!!!! – greywolf82