对于Android电视,Android recommends设计您的艺术品资产以便在高清分辨率(1920 x 1080像素)下获得最佳观看效果。计算Android平板电脑和电视设备的最小可读文本大小
有以下用于电视两个可用的解决方案:
- 1280×720
- 1920×1080
主要有两个屏幕可用于Android平板电脑尺寸为7英寸& 10英寸。这招致以下两个关键分辨率(从here考虑):
- 7” 片剂:1024×600
- 10” 片剂:1280×800
此外,对于不同的显示设备,我们可以有不同的分辨率Android电视设备和桌子也是。
我需要为给定长度的给定消息计算每个设备的最小可读textSize
。
让我举个例子,用户设置最大消息长度为n chars
。现在,我想限制用户针对特定设备的此字符长度。所以我可以有最大长度的消息,最低fontSize
,这是用户可读的所有电视&平板设备。如果我们有较低的限制,那就没关系,但最大字符数限制不应该使TextView可以滚动。
起初,我试图计算像下面的最大消息长度为每TextView中的fontSize
:
TextView text = (TextView) findViewById(R.id.text);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
int dens = dm.densityDpi;
double wi = (double) width/(double) dens;
double hi = (double) height/(double) dens;
double x = Math.pow(wi, 2);
double y = Math.pow(hi, 2);
double screenInches = Math.sqrt(x + y);
//long charLimit = (long) (Math.pow(Math.floor((dens/18)), 2) * 2);
long charLimit = (long) (((Math.floor((dens/26)) * wi) * (Math.floor((dens/26)) * hi))/(wi + hi));
//long charLimit = (long) ((Math.floor((dens/22)) * Math.floor((x + y)) * 2));
String msg = "";
for (int i = 0; i < charLimit; i++) {
msg += "A";
}
text.setText(msg);
Log.e("screenInches", "screenInches: " + screenInches + " width:" + width + "/" + wi + " height:" + height + "/" + hi + " densityDpi:" + dens + " charLimit:" + charLimit);
,但不能得到满意的结果。现在,所有我想要的是计算最小可读性fontSize
(比如S),消息的给定长度(比如n个字符)将在电视和平板电脑设备上显示而不滚动。
我知道font-family和font-style也会影响到这一点。但考虑到系统默认配置是正确的方法,我应该遵循?
难道这不取决于他离开电视有多远,以及他是否戴着眼镜? – Shark
可能是,但电视的最小推荐字体大小为12sp。默认文字大小设置应为18sp。我们可能以18sp为电视基准。检查:http://developer.android.com/design/tv/style.html – astuter
感谢您的链接,但我记得通过GoogleTV天。 – Shark