Android'de tuvali kullanarak yol üzerinde bir metin çizmeye çalışıyorum. Üst oval çizgi üzerinde çizmek için metni başarılı bir şekilde alabilirim. Yapmakta zorlandığım şey metnin ortalandığından emin olmak.Merkezde oval yol üzerinde metin çizme
Sorun şu ki, metni ovalin üst çizgisine çekilmeden önce ölçebiliyorken, sonradan ölçemiyorum. Bu, metnin en üstteki oval çizgide nerede çizileceğini tahmin etmeyi, her zaman biraz da olsa sorunlu hale getirir. Bunun nedeni, ilk önce çizilecek metni ölçtüğümde, ovalin üst satırında sunulduğu gibi değil, düz bir çizgi ile ölçülür.
setTextAlign(Paint.Align.CENTER)
'u uygulamayı denedim, ancak bu, metnin yolun yaklaşık 3/4'ünü çizmesini ve istediğimi yapmasını sağlıyor.
Metnin çizileceği noktayı nasıl hesaplayabileceğime dair herhangi bir fikriniz var mı? Böylece, üst oval çizginin ölü merkezi mi, yoksa yardımcı olabilecek alternatif bir yöntem mi çiziliyor?
Bu, tuval kullanılarak çizilmelidir. XML TextViews vb. Kullanılarak yapılamaz.
Teşekkürler.
Kullanmaya çalıştığınız drawTextOnPath() ' –
Kullanmakta olduğum şey, ancak sorun, metnin ovalin en üstteki yarım çizgisinde ortalandığından emin olmaktır. Üstte çizmek için metni başarılı bir şekilde alabiliyorum, dinamik olarak metnin sorununun ortalandığından emin oluyor. –
Bir yol, Paint.getTextBounds() kullanarak işlenen metnin genişliğini hesaplamak ve ardından Metni uygun şekilde tanımlamaktır, bu da metne hizalama uygulamasının gereğini ortadan kaldıracaktır. İdeal olarak, hizalama işi [dokümantasyon] (http://developer.android.com/reference/android/graphics/Canvas.html) –