我有一个按钮(它是一个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的Constraint Layout。在布局编辑器内,您可以在按钮上指定约束,并定义按钮在不同布局和屏幕尺寸下的外观。
虽然我认为这不是最好的方法,但是ConstraintLayouts
可以帮助自动管理宽度。但是,如果您要坚持这种方法,请尝试以下操作:代替onCreate
,请尝试在onConfigurationChanged
中执行此操作。就像是:活动分类