如何让我的 AlertDialog 以等宽字体显示其文本?
How do I make my AlertDialog display its text in monospace font?
这是我显示 AlertDialog
:
的地方
public void showCenteredInfoDialog(TextView _title, TextView _message) {
_title.setGravity(Gravity.CENTER);
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("OK", null);
builder.setCustomTitle(_title);
builder.setMessage(_message.getText());
AlertDialog dialog= builder.show();
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
}
我希望字体为 monospace
。
我需要修改一个 xml
文件还是 Java 可以单独处理这个?(如果 Java 可以处理它,它可能需要 API 21,是吗?)
我想知道添加 messageView.setFontFeatureSettings("...");
或 messageView.setTypeface(...)
以某种方式引用 monospace
是否可行。我找不到 setFontFeatureSettings
.
的字符串参数的语法
这应该可以解决您的问题。在TextView部分添加:
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);
也可以在XML中更改字体,但我认为这样更舒服。
希望对您有所帮助! :)
下面是@rpfc 为我制作的内容(不需要 API 21):
用 TextView
_title 和 _message 以 MONOSPACE
字体显示 AlertDialog
的方法:
public void showCenteredInfoDialog(TextView _title, TextView _message) {
_title.setGravity(Gravity.CENTER);
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setPositiveButton("OK", null)
.setCustomTitle(_title)
.setMessage(_message.getText());
AlertDialog dialog= builder.show();
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);
}
这是我显示 AlertDialog
:
public void showCenteredInfoDialog(TextView _title, TextView _message) {
_title.setGravity(Gravity.CENTER);
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("OK", null);
builder.setCustomTitle(_title);
builder.setMessage(_message.getText());
AlertDialog dialog= builder.show();
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
}
我希望字体为 monospace
。
我需要修改一个 xml
文件还是 Java 可以单独处理这个?(如果 Java 可以处理它,它可能需要 API 21,是吗?)
我想知道添加 messageView.setFontFeatureSettings("...");
或 messageView.setTypeface(...)
以某种方式引用 monospace
是否可行。我找不到 setFontFeatureSettings
.
这应该可以解决您的问题。在TextView部分添加:
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);
也可以在XML中更改字体,但我认为这样更舒服。
希望对您有所帮助! :)
下面是@rpfc 为我制作的内容(不需要 API 21):
用 TextView
_title 和 _message 以 MONOSPACE
字体显示 AlertDialog
的方法:
public void showCenteredInfoDialog(TextView _title, TextView _message) {
_title.setGravity(Gravity.CENTER);
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setPositiveButton("OK", null)
.setCustomTitle(_title)
.setMessage(_message.getText());
AlertDialog dialog= builder.show();
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);
}