如何根据一些特定的分辨率计算分辨率?

Posted

技术标签:

【中文标题】如何根据一些特定的分辨率计算分辨率?【英文标题】:How to calculate the Resolution According to some specific resolution? 【发布时间】:2011-11-16 16:38:22 【问题描述】:

在我的应用程序中,我有一个这样的按钮:

该按钮的分辨率为 192x32。当我将此按钮放入drawable-mdpi时,布局似乎很好。现在对于多屏幕支持的其他屏幕分辨率,我必须根据其他设备屏幕制作哪种尺寸的按钮才能看到良好的布局设计? 我的意思是对于drawable-ldpi 和drawable-hdpi,我必须为这个按钮做出哪个分辨率?如何进行这样的计算以使此按钮尺寸适合所有屏幕尺寸? 请帮助我。 谢谢。

【问题讨论】:

最好是提供9-patch图像。 【参考方案1】:

无需为多屏幕支持创建多个按钮。 而是创建一个按钮并在运行时设置宽度和高度。这是通过获取显示宽度和高度来实现的。使用以下代码获取显示 H & W 值。

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

在运行时根据上面的值设置按钮的宽度和高度。

例子:

Button bt=(Button)findViewById(R.id.button);
bt.setWidth(width);//screen width(fill_parent)
bt.setHeight(height/6);//1/6 of the screen height

以上代码将按钮宽度设置为屏幕(显示)宽度大小和高度为屏幕的1/6。

【讨论】:

因此,对于 MyButton 分辨率,我必须为多屏幕尺寸支持设置哪个高度和宽度。因为我在 xml 文件中使用 wrap_content 作为高度和宽度。 并且您只将高度设置为每个屏幕显示的高度/6,但是宽度呢?我应该没有将宽度设置为 width/6 吗?? 给出任何值。如果你使用上面的代码,它会根据显示值自动调整按钮的宽度和高度。 以上代码我将按钮宽度设置为屏幕宽度(fill_parent) 好的。所以对于everyScreen Size 支持,我必须将高度设置为 height/6 ??那么宽度呢?我应该没有将宽度设置为 width/6 吗?【参考方案2】:

android developers website 上有很多关于此主题的信息。特别是,有一个列表,列出了各种 dpi 级别以及它们对应的 DPI 范围。

此外,您可以将图像设为nine-patch,并让它自动神奇地展开以适应按钮,而不是为不同的分辨率提供不同的图像。虽然如果你想在背景中保持高亮的比例,让它垂直扩展可能有点困难。

【讨论】:

哦!因此,根据nice-patch的文档,如果我将按钮的一个图像与.9.png格式一起放置,那么它将根据设备屏幕的不同分辨率自动设置大小???或者我应该把它放到不同的 res 目录中,比如 drawable-ldpi、hdpi 或 mdpi 吗?? 我已经阅读了开发人员的多屏支持文档,但他们在那里为所有多设备提供了整个屏幕大小。而不是它,我想将我的按钮设置为多屏幕尺寸分辨率所以这就是我需要帮助的原因。 请回复我的评论。

以上是关于如何根据一些特定的分辨率计算分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据设备的分辨率更改样式?

怎样根据视频码率/音频码率/分辨率/时间长度/视频压缩格式/帧率,计算视频文件的大小?

android多分辨率适配

Flex应用程序中的屏幕分辨率问题

如何测试设备是不是能够播放特定分辨率的视频?

如何通过视频画面剪切得到特定分辨率的视频文件