Ответ 1
Размер текста 2 будет практически невидим. Попробуйте по крайней мере 14. BTW, использование xml имеет много преимуществ и облегчит вам жизнь, когда вам нужно сделать что-нибудь более сложное, чем "Hello World".
Я использую Eclipse Indigo, тестируя 2 эмулятора (2.2 и 3.0).
приведенный ниже код показывает, что я тестирую сейчас, однако установка размера текста ничего не показывает на экране при попытке запустить эмулятор. (если я прокомментирую размер текста, текст отображается красным цветом). Я думал, что каким-то образом затмение не перестраивает код, но я добавил строку кода, чтобы добавить синий фон, и это сработало. Я попытался установить размер текста после того, как текст был по-прежнему безуспешным. код ниже. Спасибо за вашу помощь! (отказ от ответственности) - я стараюсь держаться подальше от xml. Будучи тем, что я уже знаю java, я не хочу зависеть от этого.
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class TestAndroidvs2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView text = new TextView(this);
text.setTextColor(Color.RED);
text.setTextSize(2);
text.setBackgroundColor(Color.BLUE);
text.setText("Hello Android");
setContentView(text);
}
}
Размер текста 2 будет практически невидим. Попробуйте по крайней мере 14. BTW, использование xml имеет много преимуществ и облегчит вам жизнь, когда вам нужно сделать что-нибудь более сложное, чем "Hello World".
метод TextView.setTextSize(int unit , float size);
принимает два параметра.
Попробуйте это:
text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
Это решило проблему для меня. У меня одинаковый размер шрифта на всех устройствах.
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));
В настоящее время метод setTextSize(float size)
будет работать хорошо, поэтому нам не нужно использовать другой метод для изменения размера текста
android.widget.TextView.java исходный код
/**
* Set the default text size to the given value, interpreted as "scaled
* pixel" units. This size is adjusted based on the current density and
* user font size preference.
*
* <p>Note: if this TextView has the auto-size feature enabled than this function is no-op.
*
* @param size The scaled pixel size.
*
* @attr ref android.R.styleable#TextView_textSize
*/
@android.view.RemotableViewMethod
public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}
Пример использования
textView.setTextSize(20); // set your text size = 20sp
Подробнее о настройке размера текста в коде см. эту ссылку. В основном это говорит:
public void setTextSize (int unit, float size)
Поскольку: Уровень API 1 Установите размер текста по умолчанию для данного устройства и стоимость. См. TypedValue для возможных единиц измерения. Связанный XML Атрибуты
Параметры android: textSize
единица Требуемая единица измерения.
size Желаемый размер в данных единицах.
В моем случае Используется этот Метод:
public static float pxFromDp(float dp, Context mContext) {
return dp * mContext.getResources().getDisplayMetrics().density;
}
Здесь Set TextView TextSize Programatically:
textView.setTextSize(pxFromDp(18, YourActivity.this));
Продолжайте пользоваться:)