1

我有两个平板设备:

1)华硕记事本 172V 平板电脑

在线规格为:600 * 1024 像素,7.0 英寸(~170 ppi 像素密度)链接

通过代码的规格:1024 * 552 像素,7.0 英寸(160 ppi 像素密度)

2) MID 7510 平板电脑

网上给出的规格为:800 * 480 像素,7.0 英寸(任何地方都没有提到密度)链接

通过代码的规格:1024 * 552 像素,7.0 英寸(160 ppi 像素密度)

我的问题是:

-两种平板电脑具有相同的密度和分辨率(通过代码),所以我如何区分它们以设置位图高度(两者的宽度都正确),因为在 的情况下MID7510,位图高度略微向下延伸。

-是否有任何其他因素导致两个
平板电脑的位图大小不同?

-为什么规格会因代码而异,并且在网上给出的不同?

获取密度和分辨率的代码:

 DisplayMetrics dm = new DisplayMetrics();
 getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);                       

    int screenWidth = dm.widthPixels;
    int screenHeight = dm.heightPixels;                     

    // Display device dpi (density) value in pixels
    int screenDPIy = (int)dm.ydpi;
4

2 回答 2

0

我将尝试回答每个问题,但我将从更重要的问题开始:

- 为什么规格会因代码而异,并且在网上给出的不同?

因为您可以在网上找到设备使用的材料,所以它通常是正确的值。您可以通过构造函数在为他们的设备构建他们的 android 版本时设置的代码规范找到。意思是:它可能是假的!特别是对于来自未知制造商或中国低成本的设备,例如“weisung”。

鉴于此,其他问题的答案:

- 是否有任何其他因素导致两个平板电脑的位图大小不同?

我不这么认为,它们有不同的屏幕尺寸和密度,但系统认为它们是相同的......它解释了最终位图尺寸的差异。

- 我如何区分它们?

绝对不是来自屏幕规格。如果您确实需要管理“weisung”设备,您可以随时通过代码在设备配置中检查制造商。(假设他们在制造商字段中正确设置了他们的标识 XD)

检查常量值:android.os.Build.MANUFACTURER

我真的很想了解更多关于这个主题的信息,所以欢迎提供更多信息。

于 2013-08-30T14:49:53.033 回答
0

图表在drawable-hdpi文件夹中。

我只是这样做:

img.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));

这样做的MID 7510高度不合适。

像这样设置高度适用于两种平板电脑:

static int imgHeight = 0;

Drawable d = (BitmapDrawable) getResources().getDrawable(R.drawable.chart);

imgHeight = d.getIntrinsicHeight(); 

final ImageView img = new ImageView(getActivity());

img.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (imgHeight * 1.5)));

这是因为1 hdpi= 1.5 mdpi。所以总高度应该是图像高度的1.5倍。

于 2013-09-05T07:33:03.360 回答