Android-макет ImageView макет в dip? - PullRequest
4 голосов
/ 26 августа 2010

Я использую следующий код:

ImageView i = новый ImageView (mContext);

i.setImageResource (mImageIds [position]);

i.setScaleType (ImageView.ScaleType.FIT_XY);

       //pixels settings !!!

i.setLayoutParams (new Gallery.LayoutParams (200, 100));

, но, как вы можете видеть, это установка размеров макета в пикселях.

Кто-нибудь знает, как сделать то же самое, но в «dip»?

Ответы [ 3 ]

19 голосов
/ 01 декабря 2011

Следующий вспомогательный метод принимает в качестве независимых входных пикселей устройства (DIP) и возвращает фактические пиксели для текущего устройства.

private int getPixels(int dipValue) {
    Resources r = getResources();
    int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                                            dipValue, 
                                            r.getDisplayMetrics());
    return px;
}
10 голосов
/ 13 декабря 2012

Если вы сохраняете ваше измерение как ресурс, вы можете использовать

getResources().getDimensionPixelSize(id);

Это также облегчит настройку макетов.

1 голос
/ 26 августа 2010

См. http://developer.android.com/guide/practices/screens_support.html#screen-independence

Как конвертировать dpi в пиксели.

...