gpt4 book ai didi

android动态改变文字大小

转载 作者:行者123 更新时间:2023-11-30 02:43:19 28 4
gpt4 key购买 nike

我的按钮布局如下

<Button
android:id="@+id/Button01"
android:layout_width="420px"
android:layout_height="120px"
android:background="@drawable/butt1"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:onClick="clk_fault"
android:text="Enter Fault"
android:textColor="#FFFF00"
android:layout_marginTop="100px"
android:textSize="50px" />

当 Activity 开始时,我运行获取显示宽度的代码,然后根据设备的分辨率调整按钮大小

一切正常,但文字大小始终保持不变

有没有办法根据包含文本的按钮的大小来增加文本大小?

当按钮宽度为 420px 时,50px 很棒,但如果按钮宽度仅为 200px,我需要能够减小文本大小,以便无论大小看起来都一样

感谢任何帮助

标记

编辑

请求的 Activity 代码

public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
setContentView(R.layout.activity_activity1);

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int h = metrics.heightPixels;
int w = metrics.widthPixels;
int w1 = (w/2);

Button txt1 = (Button) findViewById(R.id.Button01);
txt1.setLayoutParams(new LinearLayout.LayoutParams(w1, 100));
setMargins(txt1, 0, 100, 0, 0);

}

public static void setMargins (View v, int left, int top, int right, int bottom) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(left, top, right, bottom);
v.requestLayout();
}
}

最佳答案

不要使用 px。使用 dp 设置小部件大小,使用 sp 设置字体大小。
这样您将获得完美的可扩展性

sp ~ dp(几乎等于)。

mdpi 分辨率下,1px = 1dp。

在ldpi分辨率下,比例倍数为0.75
mdpi 分辨率下,缩放倍数为1.0
在 hdpi 分辨率下,缩放倍数为 1.5
在 xhdpi 分辨率下,缩放倍数为 2.0
在 xxhdpi 分辨率下,缩放倍数为 3.0
在xxxhdpi分辨率下,比例倍数为4.0

mdpi 被认为是引用分辨率


在使用 Java 代码时,您正在使用像素。
这意味着您必须:

1 - 找到比例因子以“将它们转换为 dp”。
2 - 将您的值乘以该系数。

为了找到乘数,我使用了这段代码:

    final DisplayMetrics metrics =
Resources.getSystem().getDisplayMetrics();

final float scale = metrics.density;

现在,您可以将值乘以 scale 并相应地缩放像素

关于android动态改变文字大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460247/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com