Draw Rectangle which change size w.r.t different android screen size
I want to draw a rectangle using canvas which change its size with different screen size.
That means it increase of decrease its size with screen ratio. I use the following code:float scale = getContext().getResources().getDisplayMetrics().density;
canvas.drawRect(leftX-20*scale, leftY-20*scale, right开发者_开发百科X+20*scale, rightY, mPaint);
But it does not change its size in different screen.
What can I do?The problem is in getContext().getResources().getDisplayMetrics().density;
it wil give you same dencity always better use the following approach
To get density Use the following code
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenDensity = metrics.densityDpi;
so your code will be
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);
Or you can try
float scale= Resources.getSystem().getDisplayMetrics().densityDpi;
This is implemented in my Android Game "MaracasRunner".
精彩评论