เป็นไปได้ไหมที่จะกำหนดสไตล์หลาย ๆ แบบสำหรับข้อความที่แตกต่างกันภายใน TextView?
ตัวอย่างเช่นฉันกำลังตั้งค่าข้อความดังนี้:
tv.setText(line1 + "\n" + line2 + "\n" + word1 + "\t" + word2 + "\t" + word3);
เป็นไปได้ไหมที่จะมีสไตล์แตกต่างกันสำหรับองค์ประกอบข้อความแต่ละรายการ? เช่นตัวหนา line1 ตัวเอียง word1 เป็นต้น
ภารกิจทั่วไปของคู่มือผู้พัฒนาและวิธีการทำสิ่งเหล่านี้ใน Androidประกอบด้วยการเลือกการเน้นหรือการกำหนดส่วนของข้อความ :
// Get our EditText object. EditText vw = (EditText)findViewById(R.id.text); // Set the EditText's text. vw.setText("Italic, highlighted, bold."); // If this were just a TextView, we could do: // vw.setText("Italic, highlighted, bold.", TextView.BufferType.SPANNABLE); // to force it to use Spannable storage so styles can be attached. // Or we could specify that in the XML. // Get the EditText's internal text storage Spannable str = vw.getText(); // Create our span sections, and assign a format to each. str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); str.setSpan(new BackgroundColorSpan(0xFFFFFF00), 8, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
แต่นั่นใช้ตัวเลขตำแหน่งที่ชัดเจนภายในข้อความ มีวิธีที่สะอาดกว่านี้หรือไม่?