#android #android-studio #textview
#Android #android-studio #textview
Вопрос:
У меня есть действие в моем приложении, где у меня есть два textviews и две кнопки для увеличения и уменьшения масштаба соответственно. Увеличение, кажется, работает просто отлично, но уменьшение работает наоборот, оно увеличивает масштаб вместо уменьшения. Вот код
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 — это кнопки.
Ответ №1:
Как я вижу, вы хотите увеличивать / уменьшать масштаб обоих 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;
}
Комментарии:
1. Большое спасибо @Mouaad, это сработало. не могли бы вы объяснить, что было не так с моим кодом?