-1

I have an ImageView with matchParent property in width.

how can i know its runtime width on my device (using eclipse, without adding code programmatically)?

how can I know the conversion ratio between dpi to pxls in my device?

Elad Benda
  • 35,076
  • 87
  • 265
  • 471

2 Answers2

1

I have an ImageView ... how can i know its runtime width on my device

You can get the width when the ImageView is measured, i.e. later than the runtime. However you can get the screen's width and height like this:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

int height = metrics.heightPixels;
int width = metrics.widthPixels;

And if for example your ImageView takes up a specific portion of your screen you can measure it using the screen's width and height.

how can I know the conversion ratio between dpi to pxls in my device?

To convert say 20 pixels to DP do (adding to the above code):

int dp = 20 / metrics.density:

Extra: Here's a dpi to pixel calculator

Simas
  • 43,548
  • 10
  • 88
  • 116
0

If you don't want to use the TreeObserverListener way, you can try to get the View to measure itself and give you what the dimensions would be if it were calculated. In my experience, this has worked in most cases but not all; especially if the View is in some special dynamic layout or the ordering of the hierarchy prevents the dimensions from being calculated in the correct order. You might find luck in refering to this popular answer.

Community
  • 1
  • 1
Brian
  • 7,955
  • 16
  • 66
  • 107