Я использую Eclipse Indigo, тестирую на двух эмуляторах (2.2 и 3.0).
приведенный ниже код показывает то, что я сейчас тестирую, однако установка размера текста ничего не показывает на экране при попытке запустить эмулятор. (если я закомментирую размер текста, текст будет отображаться красным цветом). Я подумал, что почему-то eclipse не перестраивает код, но я добавил строку кода, чтобы добавить синий фон, и это сработало. Я попытался установить размер текста после установки текста, но безуспешно. код ниже. Спасибо за вашу помощь! (отказ от ответственности) - я стараюсь держаться подальше от 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);
}
}
метод
TextView.setTextSize(int unit , float size);
принимает два параметра.Попробуй это :
text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
сослаться на это и это .
ОБНОВЛЕНИЕ: Теперь
setTextSize(float size)
размер текста будет устанавливаться автоматически в "scaled pixel
" единицах. не нужно упоминать COMPLEX_UNIT_SP вручную. Обратитесь к документации .источник
float myTextSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 18F, context.getResources().getDisplayMetrics());
Это устранило проблему для меня. У меня одинаковый размер шрифта на всех устройствах.
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 static float pxFromDp(float dp, Context mContext) { return dp * mContext.getResources().getDisplayMetrics().density; }
Здесь программно установите TextView TextSize :
textView.setTextSize(pxFromDp(18, YourActivity.this));
Продолжайте наслаждаться :)
источник
В Kotlin вы можете просто использовать вот так:
textview.textSize = 20f
источник