我正在使用galaxy tab 1,7英寸hdpi和galaxy tab plus 7英寸hdpi但分辨率更高,而在我的应用程序中,文本可以在galaxy tab中正常读取,但在galaxy tab中可以正常读取有太多的小。 在字体大小和布局大的情况下使用sp。任何想法?谢谢不同分辨率的文字大小
回答
您可以使用this尺寸中的任何一种,根据屏幕的物理尺寸以的价格销售。所有设备上的文本将具有相同的物理尺寸。
你只需要创建与密度或屏幕尺寸 不同的文件夹一样
选项1.
values-large
values-small
values-normal
更多解释检查此链接...
选项2
mTextView.setTextSize(16 * getResources().getDisplayMetrics().density);
这会给TEXTSIZE取决于密度..
是的,但2片使用大布局,但具有不同的分辨率,然后我会有同样的问题。 – colymore
试试这个:
这样
android:textSize= "10sp"
SP
比例独立像素 - 这就像dp单元,但它也是 根据用户的字体大小首选项缩放。建议您在指定字体大小时使用本机的 ,因此它们将根据屏幕密度和用户偏好进行调整。
textSize,而不是文字大小 –
通过硬件规格Galaxy Tab 1是MDPI设备,但由于它使用Android 2.x,因此它采用编程方式将其设置为使用HDPI资源。所以我可以建议你做如下:
- 在
values
目录中创建文件dimens.xml
。 - 放在那里
<dimen name="font_size">30sp</dimen>
。这是默认的字体大小。 - 在
values-large
目录下创建文件dimens.xml
。 - 放在那里
<dimen name="font_size">20sp</dimen>
。这是字体大小的Galaxy Tab 1 - 在
values-sw600dp
目录下创建文件dimens.xml
。 - 放在那里
<dimen name="font_size">30sp</dimen>
。这是Android 3.x及更新版本的其他平板电脑的字体大小。 - 在布局指定
android:textSize="@dimens/font_size"
这应该是对你有所帮助,如果你想以编程方式设置大小。文本将在相同的大小显示每个设备上
TextView text = new TextView(this);
text.setText("text");
text.setTextSize(16 * getResources().getDisplayMetrics().density);
(1)I认为使用“DP”或“浸渍”为文本比使用“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;
}
为TEXTSIZE,谷歌使用建议而不是“DP”
chcek此链接 http://developer.android.com/design/style/typography.html
和支持字体大小的多屏应创建新的RESOUR“SP” CE每个屏幕尺寸 http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
的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);
}
下面的代码来调整在一个TextView字体大小缩放,使用在用户系统字体大小设置。
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);
调用需要API level 17 for'display.getRealSize(size);' –
总之,你可以利用scalable DP和scalable Font的方法。
Android项目结构固有地允许通过在dimens.xml文件定义它们支持的屏幕尺寸指定不同的字体大小(SP)和余量的值(DP)。但仍然存在的问题是 - 要使用什么值? UX设计师通常只提供一套样式指南(例如,360x640 DP屏幕尺寸),并且不提供所有其他支持的屏幕尺寸。因此,为其他支持的屏幕尺寸使用正确的价格仍然没有答案。
一个很好的解决方案(按我的understading)是利用dimens.xml文件现成的可扩展字典,类似于this库提供文件的字典的东西。在将这些xml文件添加到项目中之后,您只需使用布局中的键,然后Android会自动使用各个目录中的字体/边距值。请参考here的视觉差异 - 有和没有这种方法。
- 1. Android:Canvas.drawText()在不同屏幕分辨率下的文字大小
- 2. 根据不同分辨率和ScreenSize的TextView字体大小
- 3. 保持字体大小不同的屏幕分辨率
- 4. 使用XML的不同分辨率密度的文本大小
- 5. 字符串的分辨率/大小
- 6. 针对不同分辨率的Android文本大小
- 7. 如何在不同分辨率下显示相同的“比例”文字大小?
- 8. 如何动态修复不同屏幕分辨率的文字大小Android
- 9. 在画布上了解不同分辨率图像上的文字大小android
- 10. vb.net分辨率大小相同,但看起来不同
- 11. 不同分辨率对不同分辨率
- 12. 跨不同分辨率的图像大小问题
- 13. 接头主机和物品大小不同的分辨率
- 14. GrouBox在不同分辨率下的大小vb.net
- 15. VB网络控制表格大小在不同的分辨率
- 16. 调整大小上不同的屏幕分辨率
- 17. CSS不同的分辨率
- 18. 在不同的分辨率
- 19. 不同屏幕分辨率的页面大小和行大小标准%window
- 20. C#:尽管不同分辨率使用Graphics.DrawImage保留大小
- 21. 字体为不同分辨率Libgdx
- 22. 字体大小超过HDPI/MDPI分辨率的小屏幕
- 23. 字体大小是较小的分辨率
- 24. 背景图片在不同分辨率下调整大小/加载大小为
- 25. 不同分辨率(统一)
- 26. 根据屏幕分辨率/密度更改文字大小?
- 27. 安卓:文字大小设置为全分辨率
- 28. 字体大小对于不同屏幕尺寸/分辨率的问题
- 29. 制作低分辨率图片大小
- 30. C#Winform大小降低分辨率
也许你可以从这里找到答案还可以从这里找到答案http://stackoverflow.com/questions/16706076/font-size-and-images-for-different-devices –