如何解决最大化Android按钮文本的大小
| 我在LinearLayout中水平放置了多个按钮。在较大的设备上,所有按钮文本都以20sp文本大小适合一行。但是,在较小的设备上,文本大小为20sp,按钮的文本将变为两行。 我如何告诉它使文本大小尽可能大,以使文本停留在一行上?解决方法
这对我有用...您需要根据需要进行自定义:
// Determine Scaled Density for later calculations
Display dd = ((Activity) m_Context).getWindowManager().getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
dd.getMetrics(dm);
float m_ScaledDensity = dm.scaledDensity;
Rect bounds = new Rect();
Paint p = new Paint();
p.setTypeface(btn.getTypeface());
// W is a very wide character
String sample = \"NeedsToFIt\"
int maxFont;
for (maxFont= 1
; -bounds.top <= btn.getHeight() && bounds.right <= btn.getWidth()
; maxFont++) {
p.setTextSize(maxFont);
p.getTextBounds(sample,sample.length(),bounds);
}
maxFont = (int) ((maxFont - 1) / m_ScaledDensity);
btn.setTextSize(maxFont);
, 您可以得到屏幕分辨率,并在代码中通过更改ѭ1来调整按钮文本的大小。
编辑:算法
首先:获取屏幕分辨率,以查看您的手机是小型,中型还是大型。(为此,请使用类别:DisplayMetrics
)
第二:在您的代码中,将测试每种类型的大小(通常我认为3:small,meduim,big),并按如下所示修改按钮的textSize:
btn.setTextSize(float size ) ;
, 唯一对我有用的解决方案:调整文本大小以适合Android中的视图
[源代码]
简而言之,请改写onDraw
方法以适合您的需求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。