gpt4 book ai didi

java - 如何通过单击按钮更改textView中的文本大小

转载 作者:行者123 更新时间:2023-11-29 05:12:55 26 4
gpt4 key购买 nike

我不擅长编程,尤其是在 android 方面,我制作了 2 个按钮,一个用于使文本大小变大,一个用于使文本大小变小,并且我还设置了条件,当文本大小达到限制大小时按钮将停止增加或减小文本大小。它没有用,当我按 btnSmall 或 btnBig 时没有任何反应,我不知道这里缺少什么,请我需要帮助...这就是我所做的

Java 文件:

private Button btnSmallTxt, btnBigTxt;
private tvAdminPosts;
int txtSize = 14;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.client);
btnSmallTxt = (Button)findViewById(R.id.btnSmall);
btnBigTxt = (Button)findViewById(R.id.btnBig);

btnSmallTxt.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
if (tvAdminPosts.getTextSize() == 15||tvAdminPosts.getTextSize() ==16||tvAdminPosts.getTextSize() ==17|tvAdminPosts.getTextSize() ==18){
txtSize--;
tvAdminPosts.setTextSize(txtSize);
} else {
txtSize += 0;
tvAdminPosts.setTextSize(txtSize);
}
}
});

btnBigTxt.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
if (tvAdminPosts.getTextSize() == 14 ||tvAdminPosts.getTextSize() == 15 || tvAdminPosts.getTextSize() == 16 || tvAdminPosts.getTextSize() == 17){
txtSize++;
tvAdminPosts.setTextSize(txtSize);
} else if (tvAdminPosts.getTextSize() == 18) {
txtSize+= 0;
tvAdminPosts.setTextSize(txtSize);
} else{
txtSize+= 0;
tvAdminPosts.setTextSize(txtSize);
}
}
});

XML文件:在 xml 中,我将 textView textsize 设置为 14 sp从 14 开始,就像我用 Java 写的一样,但我没有知道我的方法是否正确还是什么??

<TextView
android:id="@+id/tvAdminPosts"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1.06"
android:textColor="#fff600"
android:maxLines="100"
android:textSize="14sp"
android:scrollbars="vertical"
android:maxLength="1000"
android:textStyle="bold" />

<Button
android:id="@+id/btnBig"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="@string/large_txt"
android:textColor="#ffffff"
android:textSize="7pt"
android:textStyle="bold" />

<Button
android:id="@+id/btnSmall"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/small_txt"
android:textColor="#ffffff"
android:textSize="5pt"
android:textStyle="bold" />

我在这方面搜索了很多,但没有找到像我想做的那样简单的事情如果有人帮助我,我将不胜感激。抱歉我的英语不好

最佳答案

根据documentation , getTextSize() 返回以 像素 为单位的文本大小,而不是您定义的 sp

android:textSize="14sp"

要么将您的 XML 属性更改为

android:textSize="14px"

所以你所有的代码逻辑都有效。

或者找到一种方法将 px 值转换为 sp

编辑:关于您的第二个问题,当您使用 setTextSize() 增加值时,它会在 sp 中设置文本大小.同样,根据 documentation ,该方法的单位类型,默认为“sp”或“scaled pixels”。

由于您总是以 px 为单位检查文本大小,因此您的条件无效,因此什么也没有发生。

解决方案是指定您想要的单位类型,在您的情况下是像素。所以你必须使用:

tvAdminPosts.setTextSize(TypedValue.COMPLEX_UNIT_PX, yourSizeValue);

关于java - 如何通过单击按钮更改textView中的文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697892/

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