晚上好,
首先,我需要为我糟糕的英语道歉,我尽量尽力描述我的问题。所以,我再次开始我的小型绘画游戏。我之所以完成它是因为我无法处理这个问题,我不想在这里惹恼所有人的问题。
正如我说的那样,我正在制作一个“Draw n'Guesss”游戏。我已经解决了Canvas在Firebase上的同步问题,不是我想要的,但我解决了它。现在我遇到了Canvas不适合每个屏幕的问题,我无法弄清楚如何计算匹配的比例因子。
每次创建带有画布的房间时,创建设备的屏幕分辨率都会在Firebase中填充。 如果我现在使用另一个屏幕分辨率的另一个设备并加入房间,画布有另一个尺寸(大或小)。
我已经尝试过不同的方法来计算比例因子。
首先,我认为只是将创建大小和实际屏幕分辨率分开。
第二次尝试是倒置的方式。
现在的方式是因为我的应用程序在底部有一个动作栏和小ImageView来获取屏幕分辨率并使用此代码细分动作栏和ImageView的大小。
final int height = getResources().getDisplayMetrics().heightPixels - getActionBarSize() - (int)(100f * getResources().getDisplayMetrics().density);
final int width = getResources().getDisplayMetrics().widthPixels;
哪种实际的工作也是如此。
我为此感到抱歉,但有没有人知道解决方案?
感谢您的帮助!
答案 0 :(得分:0)
您可以在自定义视图的onLayout或getWidth()返回>的第一个绘图中计算它0,获取其中任何一个的值,它将完全适合您的视图。
类似的东西:
void onLayout(boolean changed, int left, int top, int right, int bottom) {
if(changed && right > 0) {
int thisWidth = right - left;
// Do your layout things with this size
}
}