2012-03-21 13 views
6

Artık bir Android uygulamasında çalışıyorum. İşlevselliği olan özel bir klavye oluşturdum. Girilen metinleri görüntülemek için bir edittext kullanıyorum. Metni n sayıda satır olabilir.Şimdi benim sorunum benim klavyede bir yukarı düğmesi var.Yani yukarı düğmesine tıklarsam sonra aynı satırları aynı pozisyona gitmek zorundayım.Ama bulamadım Mevcut satırın edittext satır numarası ve curser konumu. Geçerli İmleç Hattı için bana arkadaşDüzenleme satırı numarası ve geçerli satır imleci konumu.

+0

1 Ben soru yararlı bir işleve neden olacaktır düşünüyorum doğru pozisyonun arama için kullanmak. – Gangnus

cevap

7

yardım edin bu deneyin:

public int getCurrentCursorLine(EditText editText) 
{  
    int selectionStart = Selection.getSelectionStart(editText.getText()); 
    Layout layout = editText.getLayout(); 

    if (selectionStart != -1) { 
     return layout.getLineForOffset(selectionStart); 
    } 

    return -1; 
} 

ve İmleç pozisyonu kullanımı içingetSelectionStart():

int cursorPosition = myEditText.getSelectionStart(); 
2

bazı sabit genişlik kullanmıyorsanız Yazı tipi olarak, bu kolay değil.

Kaynak metin için harf konumunu ve piksel cinsinden istenen genişliği döndüren bir işlev yok. Yazman gerekecek.

siz burada, metin ölçmek olmalıdır:

paint.setTypeface(Typeface.DEFAULT);// your preference here 
paint.setTextSize(33); // have this the same as your text size 

String text = "get text here "; 

paint.getTextBounds(text, 0, text.length(), bounds); 

Bazı karma algoritması

İlgili konular