[英]Android getting Bitmap dimensions depending on resolution of device?
我目前正在尝试创建一个由多个正方形组成的网格(有一天应该是扫雷网格)。
现在,我的解决方案是通过使用以下循环来使每个地雷都处于特定位置:
for(int i = 0; i < cols; i++)
{
for(int j = 0; j < rows; j++)
{
mines[i][j].setCoordinates(xCounter, yCounter);
xCounter+=150;
}
yCounter+=150;
xCounter = 0;
}
现在150应该显示一个正方形的宽度或高度,因为如果一个地雷在(0,0)上,那么下一个地雷应该在(minewidth,0)上,以适合贴身。
但是现在我的问题是,我怎么能独立于这150个呢?
我通过尝试使用哪个数字使网格没有间距来获得该数字。 但是,当我使用密度较低的设备时,图像较小,但彼此之间的距离仍为150像素。
现在,我如何才能获得一些与该常数无关的东西?
首先,我认为我可以使用.getWidth()方法来获取存储在“矿”类中的位图的宽度。 但这并没有解决...
有没有人想过要创建一个与设备密度无关的网格?
您可以尝试获取屏幕的宽度和高度(以dp为单位),并使用一个系数来确定每个网格的宽度。
您可以在应用程序类中添加以下代码,
DisplayMetrics displayMetrics = applicationContext.getResources().getDisplayMetrics();
int absoluteWidthPx = displayMetrics.widthInPixels;
int abduluteHeightPx = displayMetrics.heightInPixels;
float scalingFactor = displayMetrics.density;
现在,您可以找到屏幕宽度和高度的dp值,
/** pixels = densityIndependantPixels * (dotsPerInch/160), based on this **/
int dpWidth = (int)(absoluteWidthPx /scalingFactor);
int dpHeight = (int)(abduluteHeightPx /scalingFactor);
一旦有了dp中的宽度和高度,就可以尝试使用一些因素来确定每个网格的宽度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.