Подтвердить что ты не робот

Размер текста с разным разрешением

Я использую вкладку галактики 1, 7inch hdpi и вкладку галактики плюс 7 дюймов hdpi, но более высокое разрешение, и в моем приложении текст можно хорошо читать на вкладке галактики, но на вкладке галактики плюс слишком много мелких, Я использую sp в размере шрифта и макете. Есть идеи? Благодаря

4b9b3361

Ответ 1

Это поможет вам, если вы хотите установить размер программно. Текст будет отображаться на одном устройстве одинакового размера.

TextView text = new TextView(this);
text.setText("text");
text.setTextSize(16 * getResources().getDisplayMetrics().density);

Ответ 2

По спецификациям аппаратного обеспечения Galaxy Tab 1 является устройством MDPI, но поскольку он использует Android 2.x Samsung, он программно использует его для использования ресурсов HDPI. Поэтому я могу посоветовать вам сделать следующее:

  • Создайте файл dimens.xml в каталоге values.
  • Положите туда <dimen name="font_size">30sp</dimen>. Это размер шрифта по умолчанию.
  • Создать файл dimens.xml в values-large.
  • Положите <dimen name="font_size">20sp</dimen>. Это размер шрифта для вкладки 1 галактики.
  • Создать файл dimens.xml в каталоге values-sw600dp.
  • Положите туда <dimen name="font_size">30sp</dimen>. Это размер шрифта для других планшетов с Android 3.x и новее.
  • В макете укажите android:textSize="@dimens/font_size"

Ответ 3

вам просто нужно создать разные папки, связанные с плотностью или размером экрана как

Вариант 1.

values-large
values-small
values-normal

Для получения дополнительной информации проверьте эту ссылку...

Поддержка нескольких экранов

Вариант 2.

mTextView.setTextSize(16 * getResources().getDisplayMetrics().density);

это даст TextSize в зависимости от плотности.

Ответ 4

попробуйте следующее:

как это

android:textSize= "10sp"

зр

Масштабируемые пиксели - это похоже на блок dp, но это также масштабируется по предпочтению размера шрифта пользователя. Рекомендуется использовать этот блок при задании размеров шрифта, поэтому они будут скорректированы для как плотность экрана, так и пользовательские предпочтения.

Ответ 5

(1) Я думаю, что использование "dp" или "dip" для текста лучше, чем использование "sp", потому что dp (пиксель плотности) настраивается в соответствии с плотностью экрана. Таким образом, текст будет выглядеть больше на устройствах высокой плотности и меньше на устройствах с низкой плотностью.

(2) ИЛИ, если вы специально хотите использовать "sp" для размера текста, вы можете определить плотность устройства и затем соответствующим образом задать размер текста:

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            //set text-size for low-density devices.
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            //set text-size for medium-density devices.
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            //set text-size for high-density devices.
            break; 
    } 

Ответ 6

Вы можете использовать любой этот размер, этот рынок основан на физическом размере экрана. Чем тексты на всех устройствах будут иметь одинаковый физический размер.

Ответ 8

В приведенном ниже коде настраивается масштабирование размера шрифта в текстовом элементе, используя настройку размера шрифта пользователя.

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int screenWidth = size.x;
float fontscale = getResources().getConfiguration().fontScale;
float textSize = (screenWidth/ fontscale)/10;
Log.e(TAG, "textSize is:  " + textSize);
yourTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP,  textSize);

Ответ 10

TextView headerTextView (метка строки) {

    TextView headerTextView = new TextView(this.context);
    float scale = context.getResources().getDisplayMetrics().density;
    if(scale > 2.0) {
    headerTextView.setWidth(210);
    headerTextView.setHeight(120);
    headerTextView.setTextSize(17);
    }
    else {
        headerTextView.setWidth(125);
        headerTextView.setHeight(60);
        headerTextView.setTextSize(21);
    }

Ответ 11

Короче говоря, вы можете использовать масштабируемый DP и масштабируемый шрифт.

Структура проекта Android по своей сути позволяет указывать разные размеры шрифта (SP) и значения маржи (DP), определяя их в файлах dimens.xml для поддерживаемых размеров экрана. Но проблема, которая все еще остается, - какие значения использовать? Дизайнеры UX обычно предоставляют руководства по стилям только для одного набора (например, размер экрана 360x640 DP) и не обеспечивают всех других поддерживаемых размеров экрана. Поэтому проблема использования прав для других поддерживаемых размеров экрана по-прежнему остается без ответа.

Одним из хороших решений (для моего понимания) является использование готового масштабируемого словаря файлов dimens.xml, что-то похожее на словарь файлов, предоставленный this библиотека. После добавления этих xml файлов в проект вам просто нужно использовать ключи в своих макетах, тогда Android автоматически использует значение font/margin из соответствующего каталога. Пожалуйста, обратитесь здесь для визуальной разницы - с этим и без этого.