我正在使用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 –