I have a simple layout like this:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/txtContent2"
android:layout_width="300dp"
android:layout_height="100dp"
android:background="#fed9f4"
android:textSize="22sp" />
<View
android:layout_width="match_parent"
android:layout_height="10dp"/>
<TextView
android:id="@+id/txtBelow"
android:layout_width="300dp"
android:layout_height="100dp"
android:background="#fed9f4"
android:textSize="22sp"/>
</LinearLayout>
A TextView and an EditText.
When I set a same text in both of them, it seems that each one renders text differently. like below:
I'm using StaticLayout to measure text and identify text bounds in each line and I have to set text to a TextView(so user can't edit or select it).
But it seems StaticLayout text boundaries calculations match with EditText not TextView.
StaticLayout layout = new StaticLayout(content, txtContent.getPaint(),
txtContent.getWidth(),
Layout.Alignment.ALIGN_NORMAL, 1, lineSpace, false);
My question is why text rendering is different in TextView and EditText and how I can measure text with StaticLayout and set text to TextView so that each line's start and end offsets matches exactly with result that user see after setText