Android-方向更改时更改按钮文本大小

问题描述 投票:0回答:2

我有一个按钮(它是一个Bootstrap按钮,基于com.beardedhen:androidbootstrap)。

这是xml文件中的布局宽度和高度:

android:layout_width="0dp"
android:layout_height="wrap_content"

我想要的是在方向更改时修改按钮文本的文本大小(并且还取决于各种屏幕大小)。>>

我想这样做的原因是,在横向上,按钮的空间比纵向更多。

我知道每次方向改变时都会调用onCreate。

我在onCreate中使用以下代码:

DisplayMetrics dm = new DisplayMetrics();
float height = dm.heightPixels;
float width = dm.widthPixels;
BootstrapButton btn = findViewById(R.id.btn);
float density = getResources().getDisplayMetrics().density;
btn.setTextSize((width / density) / 32);

该代码计算屏幕的宽度和高度,并相应地设置文本大小。这样,我将根据设备的屏幕及其方向(在其中宽度变为高度,反之亦然)获得正确的文本大小。

问题是方向改变时此代码不起作用。

我想念什么?

谢谢您的所有帮助。

我有一个按钮(它是一个Bootstrap按钮,基于com.beardedhen:androidbootstrap)。这是xml文件中的布局宽度和高度:android:layout_width =“ 0dp” android:layout_height =“ ...

android orientation text-size screen-density
2个回答
0
投票

您应该阅读Android的Constraint Layout。在布局编辑器内,您可以在按钮上指定约束,并定义按钮在不同布局和屏幕尺寸下的外观。


0
投票

虽然我认为这不是最好的方法,但是ConstraintLayouts可以帮助自动管理宽度。但是,如果您要坚持这种方法,请尝试以下操作:代替onCreate,请尝试在onConfigurationChanged中执行此操作。就像是:活动分类

© www.soinside.com 2019 - 2024. All rights reserved.