Android'de SurfaceView'a drawText metodu kullanarak yazı yazdırıyorum. Fakat eğer yazı ekranın boyutundan uzunsa ekranın dışına taşıyor.

canvas.drawText("yazi......", 0, 20, paintYazi);

Ben eğer yazı ekran boyutundan küçükse tek satırda, büyük ise alt satıra geçecek şekilde yazdırmak istiyorum. Bunun içinde uzunluğunu bilmem gerekiyor. Acaba bunu nasıl yaparım?


Yazının boyutunu lenght() metoduyla döndürüp tahmini bir şekilde bölmeye çalıştım. Fakat bu seferde yazı tipi büyüklüğü sorun oldu. Paint nesnesinde setTextSize() metoduyla yazının boyutunu değiştiriyorum. Haliyle yazı boyutu büyüdükçe bir satıra sığabilecek harf sayısıda azalıyor. Yani yazı boyutunu da hesaba katıp bir işlem yapmam gerekiyor. Bu şekilde hazır bir fonksiyon yok sanırsam. Bunu hesaplayan metodu kendim yazmak istesem algoritma nasıl olmalı?

soruldu: 24 Haz '13, 05:50

decimal's gravatar image

decimal
6224
cevap kabul oranı: 0%

değiştirildi: 13 Tem '13, 01:15

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


float genislik= android.graphics.Paint.measureText("metin");

İşinizi görür mü?

http://developer.android.com/reference/android/graphics/Paint.html#measureText%28java.lang.String%29

Ayrıca "text wrapping" yani metin dürme ( :D ) işi için StaticLayout kullanmayı deneyebilirsiniz

permanent link

cevaplandı: 13 Tem '13, 02:53

nurettin's gravatar image

nurettin
2.2k2441
cevap kabul oranı: 14%

değiştirildi: 13 Tem '13, 02:56

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819

Soruldu: 24 Haz '13, 05:50

Görüntüleme: 590 kez

Son güncelleme: 13 Tem '13, 02:56

powered by BitNami OSQA