런타임에 TextView의 스타일을 변경하는 방법
사용자가을 탭 TextView
하면 정의 된 스타일을 적용하고 싶은 Android 앱 이 있습니다.
A를 찾으려고 textview.setStyle()
했지만 존재하지 않습니다. 나는 시도했다
textview.setTextAppearance();
하지만 작동하지 않습니다.
res/values/style.xml
다음과 같이 새 XML 파일 을 생성하여이를 수행했습니다 .
<?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>
또한 다음과 같은 "strings.xml"파일에 항목이 있습니다.
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
그런 다음 내 코드에서 해당 TextView에서 탭 이벤트를 트랩하기 위해 ClickListener를 만들었습니다. 편집 : API 23에서 'setTextAppearance'는 더 이상 사용되지 않습니다.
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);
}
});
다시 변경하려면 다음을 사용합니다.
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
Jonathan이 제안한 것처럼 textView.setTextTypeface
작품을 사용하여 몇 초 전에 앱에서 사용했습니다.
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);
당신은 코드에서 그것을 설정합니다. 서체
프로그래밍 방식 : 런타임
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: Design Time
You can set in XML as well:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Hope this will help
Summved
i found textView.setTypeface(Typeface.DEFAULT_BOLD);
to be the simplest method.
try this line of code.
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
here , it will get current Typeface from this textview and replace it using new Typeface. New typeface here is DEFAULT_BOLD
but you can apply many more.
See doco for setText() in TextView http://developer.android.com/reference/android/widget/TextView.html
To style your strings, attach android.text.style.* objects to a SpannableString, or see the Available Resource Types documentation for an example of setting formatted text in the XML resource file.
Depending on which style you want to set, you have to use different methods. TextAppearance stuff has its own setter, TypeFace has its own setter, background has its own setter, etc.
참고URL : https://stackoverflow.com/questions/4630440/how-to-change-a-textviews-style-at-runtime
'Programing' 카테고리의 다른 글
좋은 단위 테스트는 무엇입니까? (0) | 2020.08.23 |
---|---|
형식 문자열, 선행 0이있는 정수 (0) | 2020.08.23 |
MySQL '스키마 만들기'와 '데이터베이스 만들기'-차이점이 있습니까? (0) | 2020.08.22 |
JavaScript에서 ( "foo"=== new String ( "foo"))가 false로 평가되는 이유는 무엇입니까? (0) | 2020.08.22 |
웹 사이트를위한 자동 Retina 이미지 (0) | 2020.08.22 |