简体   繁体   English

TextView尺寸-手机和平板电脑

[英]TextView Dimensions - Phones and Tablets

I am familiar with setting different - different dimensions for Android Phones and Tablets 我熟悉为Android手机和平板电脑设置不同的尺寸-不同的尺寸

for an example I have used below dimens.xml in values: 例如,我在dimens.xml下面使用了值:

<dimen name="text_size">18sp</dimen>

structure: 结构体:

res/values/dimens.xml

res/values-small/dimens.xml

res/values-normal/dimens.xml

res/values-large/dimens.xml

res/values-xlarge/dimens.xml

Now I just want to know, Is there any logic (calculation) to give text sizes in dimens.xml for all android devices, like: 现在我只想知道, 是否有任何逻辑(计算)可为所有android设备在dimens.xml提供文本大小,例如:

If I have provided 18sp in values/dimens.xml then how could I understand that I have to use 30sp for tablets, 14sp for small devices, 16sp for normal devices 如果我提供18spvalues/dimens.xml话,怎么可能我明白我必须使用30sp为平板电脑, 14sp为小型设备, 16sp正常设备

Is there any logic (calculation) to give text sizes in dimens.xml for all android devices ? 是否有任何逻辑(计算)可为所有android设备在dimens.xml中提供文本大小?

You can use DisplayMetrics logic . 您可以使用DisplayMetrics逻辑。

A structure describing general information about a display, such as its size, density, and font scaling. 描述有关显示器的一般信息的结构,例如其大小,密度和字体缩放。

  DisplayMetrics metrics = getResources().getDisplayMetrics(); int DeviceTotalWidth = metrics.widthPixels; int DeviceTotalHeight = metrics.heightPixels; 

Now 现在

    TextView Tv_App_Title = (TextView)findViewById(R.id.App_Title);
    Tv_App_Title.setTextSize(DeviceTotalHeight/8);

Edit 编辑

Tv_App_Title.getMeasuredHeight(); //get height
Tv_App_Title.getMeasuredWidth();  // get Width

float size = TvObj.getTextSize();

public float getTextSize () 公共浮动getTextSize()

Added in API level 1 Returns the size (in pixels) of the default text size in this TextView. API级别1中添加的值返回此TextView中默认文本大小的大小(以像素为单位)。

Now according to your question add logic 现在根据您的问题添加逻辑

if(size>)
{
}
else{
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM