android Imageview layoutparams in dip?
-
01-10-2019 - |
Question
I'm using the following code :
ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setScaleType(ImageView.ScaleType.FIT_XY);
//pixels settings !!!
i.setLayoutParams(new Gallery.LayoutParams(200, 100));
but as you can see, it is setting the layout dimensions in pixels.
Does anybody know how to do the same thing but in "dip" ?
Solution
See http://developer.android.com/guide/practices/screens_support.html#screen-independence
On how to convert from dpi to pixels.
OTHER TIPS
The following helper method takes as input device independent pixels (DIP) and returns actual pixels for the current device.
private int getPixels(int dipValue) {
Resources r = getResources();
int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dipValue,
r.getDisplayMetrics());
return px;
}
If you store your dimension as a resource, you can use
getResources().getDimensionPixelSize(id);
This will also make it easier to adjust your layouts.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow