Rumah >Java >javaTutorial >Bagaimana untuk Menghitamkan Teks dalam Kawalan TextView dalam Android?

Bagaimana untuk Menghitamkan Teks dalam Kawalan TextView dalam Android?

Barbara Streisand
Barbara Streisandasal
2024-11-09 18:26:021045semak imbas

How to Paginate Text within a TextView Control in Android?

Menombor Teks dalam Android

Masalah:

Menomborkan teks dalam kawalan TextView dalam Android memerlukan penentuan bila dan bagaimana untuk memecahkan teks ke dalam halaman. Ini boleh mencabar kerana algoritma pemisah baris dan pemecah halaman TextView tidak mudah diakses, menjadikannya sukar untuk mengenal pasti di mana teks berakhir pada paparan sebenar.

Penyelesaian:

Dengan memantau julat teks yang boleh dilihat menggunakan ViewTreeObserver, adalah mungkin untuk menjejaki baris terakhir yang sesuai sepenuhnya dalam paparan ketinggian. Ini membolehkan penciptaan halaman berdasarkan ketinggian kumulatif garisan, memastikan halaman dipecahkan apabila garisan ditemui melebihi ruang menegak yang tersedia.

Algoritma:

  1. Lelaran melalui baris teks dan semak sama ada bahagian bawah baris melebihi paparan ketinggian.
  2. Jika ya, pecahkan halaman baharu dan hitung nilai ketinggian terkumpul baharu berdasarkan bahagian atas baris terakhir yang tidak muat pada halaman sebelumnya serta ketinggian paparan.

Pelaksanaan:

Untuk melaksanakan algoritma ini, gunakan yang berikut kod:

// Setup code
ViewTreeObserver vto = txtViewEx.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        ViewTreeObserver obs = txtViewEx.getViewTreeObserver();
        obs.removeOnGlobalLayoutListener(this);
        height = txtViewEx.getHeight();
        scrollY = txtViewEx.getScrollY();
        Layout layout = txtViewEx.getLayout();
        firstVisibleLineNumber = layout.getLineForVertical(scrollY);
        lastVisibleLineNumber = layout.getLineForVertical(height + scrollY);
    }
});

Nota:

Penyelesaian ini memancarkan penomboran teks dengan cekap sambil menghormati ketinggian baris dan jarak aksara. Ia juga mengendalikan aksara khas dan perubahan teks dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Menghitamkan Teks dalam Kawalan TextView dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn