我想用画布绘制一个矩形,用不同的屏幕尺寸改变它的大小
这意味着随着屏幕比例增加其尺寸减小。
我使用以下代码:
float scale = getContext().getResources().getDisplayMetrics().density;
canvas.drawRect(leftX-20*scale, leftY-20*scale, rightX+20*scale, rightY, mPaint);
但它不会在不同的屏幕上改变它的大小。
我该怎么办?
答案 0 :(得分:0)
问题出在getContext().getResources().getDisplayMetrics().density;
它会给你相同的密度总是更好地使用以下方法
获取密度使用以下代码
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenDensity = metrics.densityDpi;
所以你的代码将是
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float scale = metrics.densityDpi;
canvas.drawRect(leftX-20*scale, leftY-20*scale, rightX+20*scale, rightY, mPaint);
答案 1 :(得分:0)
或者您可以尝试
float scale= Resources.getSystem().getDisplayMetrics().densityDpi;
这是在我的Android游戏“ MaracasRunner”中实现的。