私は単純なButton
を持っています:
<Button
Android:id="@+id/test"
Android:textColor="@color/white"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
次の方法でテキストプロパティを変更してみてください。
SpannableString span = new SpannableString(text);
span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
testButton.setText(span);
Android 4.3では動作しますが、5.0では動作しません。
興味深いのは、実装をButton
からTextView
に変更すると、5.0で正常に機能することです。ロリポップではButton
のようなもののようです。
デフォルトでは、マテリアルボタンはすべて大文字でテキストを表示するようにスタイル設定されています。ただし、大文字の使用に使用されるAllCapsTransformationMethod
にはバグがあり、Spannable
データが破棄されます。
Button
にAndroid:textAllCaps="false"
を指定することで、デフォルトのボタンスタイルを上書きし、すべて大文字を無効にすることができます。
<Button
...
Android:textAllCaps="false" />