绘制矩形,改变大小w.r.t不同的android屏幕大小

时间:2011-06-30 10:26:26

标签: android canvas paint

我想用画布绘制一个矩形,用不同的屏幕尺寸改变它的大小 这意味着随着屏幕比例增加其尺寸减小。
我使用以下代码:

float scale = getContext().getResources().getDisplayMetrics().density;
canvas.drawRect(leftX-20*scale, leftY-20*scale, rightX+20*scale, rightY, mPaint); 

但它不会在不同的屏幕上改变它的大小。
我该怎么办?

2 个答案:

答案 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”中实现的。