Android-макет ImageView макет в dip?

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

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

i.setImageResource (mImageIds [положение]);

i.setScaleType (ImageView.ScaleType.FIT_XY);

       //pixels settings !!!

i.setLayoutParams (новая Gallery.LayoutParams(200, 100));

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

Кто-нибудь знает, как сделать то же самое, но в "погружении"?

3 ответа

Решение

См. http://developer.android.com/guide/practices/screens_support.html

О том, как конвертировать из точек на дюйм в пиксели.

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

private int getPixels(int dipValue) {
    Resources r = getResources();
    int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                                            dipValue, 
                                            r.getDisplayMetrics());
    return px;
}

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

getResources().getDimensionPixelSize(id);

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

Другие вопросы по тегам