如何解决TextView无法缩小
我的应用程序中有一个活动,其中有两个文本视图和两个按钮,分别用于放大和缩小。 放大似乎效果很好,但缩小效果相反,它放大而不是缩小。 这是代码
ibzoomout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float s1 = tv1.getTextSize();
float s2 = tv2.getTextSize();
s1 = s1-5;
s2 = s2-5;
tv1.setTextSize(s1);
tv2.setTextSize(s2);
}
});
ibzoomin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float s1 = tv1.getTextSize();
float s2 = tv2.getTextSize();
s1 = s1+5;
s2 = s2+5;
tv1.setTextSize(s1);
tv2.setTextSize(s2);
}
});
tv1和tv2是文本视图,而ibzoomin和ibzoomout是按钮。
解决方法
正如我所看到的,您想要放大/缩小TextView
两者,我创建了以下代码,可能对您有帮助:
ibzoomout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float s1 = tv1.getTextSize();
float sp1 = s1 / getResources().getDisplayMetrics().scaledDensity;
float s2 = tv2.getTextSize();
float sp2 = s2 / getResources().getDisplayMetrics().scaledDensity;
tv1.setTextSize(decreaseSize(sp1));
tv2.setTextSize(decreaseSize(sp2));
}
});
ibzoomin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float s1 = tv1.getTextSize();
float sp1 = s1 / getResources().getDisplayMetrics().scaledDensity;
float s2 = tv2.getTextSize();
float sp2 = s2 / getResources().getDisplayMetrics().scaledDensity;
tv1.setTextSize(increaseSize(sp1));
tv2.setTextSize(increaseSize(sp2));
}
});
public Float increaseSize(float diff) {
size = diff + 5;
return size;
}
public Float decreaseSize(float diff) {
size = diff - 5;
return size;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。