Tôi có một ứng dụng android trên đó, khi người dùng nhấn vào a TextView
, tôi muốn áp dụng một kiểu đã xác định.
Tôi nghĩ để tìm một textview.setStyle()
nhưng nó không tồn tại. Tôi đã thử
textview.setTextAppearance();
Nhưng nó không hoạt động.
Tôi có một ứng dụng android trên đó, khi người dùng nhấn vào a TextView
, tôi muốn áp dụng một kiểu đã xác định.
Tôi nghĩ để tìm một textview.setStyle()
nhưng nó không tồn tại. Tôi đã thử
textview.setTextAppearance();
Nhưng nó không hoạt động.
Câu trả lời:
Tôi đã thực hiện việc này bằng cách tạo một tệp XML mới res/values/style.xml
như sau:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="boldText">
<item name="android:textStyle">bold|italic</item>
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="normalText">
<item name="android:textStyle">normal</item>
<item name="android:textColor">#C0C0C0</item>
</style>
</resources>
Tôi cũng có một mục nhập trong tệp "string.xml" của mình như sau:
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
Sau đó, trong mã của mình, tôi đã tạo ClickListener để bẫy sự kiện nhấn trên TextView đó: CHỈNH SỬA: Như từ API 23 'setTextAppearance' không được dùng nữa
myTextView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
//highlight the TextView
//myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
} else {
myTextView.setTextAppearance(R.style.boldText);
}
myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
}
});
Để thay đổi nó trở lại, bạn sẽ sử dụng cái này:
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
Giống như Jonathan đã đề xuất, sử dụng textView.setTextTypeface
các tác phẩm, tôi vừa sử dụng nó trong một ứng dụng cách đây vài giây.
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
Lập trình: Thời gian chạy
Bạn có thể lập trình bằng setTypeface ():
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
XML: Thời gian thiết kế
Bạn cũng có thể đặt bằng XML:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Hy vọng điều này sẽ giúp
Được tổng hợp
tôi thấy textView.setTypeface(Typeface.DEFAULT_BOLD);
là phương pháp đơn giản nhất.
hãy thử dòng mã này.
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
ở đây, nó sẽ nhận Kiểu chữ hiện tại từ chế độ xem văn bản này và thay thế nó bằng Kiểu chữ mới. Kiểu chữ mới ở đây là DEFAULT_BOLD
nhưng bạn có thể áp dụng nhiều hơn nữa.
Xem doco cho setText () trong TextView http://developer.android.com/reference/android/widget/TextView.html
Để tạo kiểu cho các chuỗi của bạn, hãy đính kèm các đối tượng android.text.style. * Vào một SpannableString hoặc xem tài liệu Các loại tài nguyên có sẵn để biết ví dụ về cách đặt văn bản được định dạng trong tệp tài nguyên XML.