Какая связь между пикселями и масштабированными пикселями

Я использовал редактор макетов в eclipse, чтобы смоделировать макет пользовательского интерфейса, а затем я создал код для его динамического наполнения, и вещи отображаются в разных размерах. XML, который я использую для добавления звездных изображений, выглядит следующим образом:

<ImageView
android:src="@drawable/star_gold"
android:layout_height="22sp"
android:layout_width="22sp"
android:adjustViewBounds="true"
android:layout_marginLeft="2sp"
android:layout_marginRight="2sp" />

и код Java, который я использую, чтобы сделать то же самое, выглядит следующим образом:

ViewGroup.MarginLayoutParams layout = new ViewGroup.MarginLayoutParams(22, 22);
layout.setMargins(2, 0, 2, 0);
ImageView star = new ImageView(mContext);
star.setImageResource(R.drawable.star_gold);
star.setLayoutParams(layout);
star.setAdjustViewBounds(true);
holder.Stars.addView(star);

Когда я запускаю свое приложение на G1, все выстраивается и выглядит нормально, но когда я запускаю его на Droid, звезды, которые я добавляю через Java, примерно вдвое меньше тех, которые я добавляю в свой XML. Что мне нужно сделать, чтобы убедиться, что все масштабируется соответствующим образом?

Изменить: Это отличные ответы, но мне нужно знать, как сделать это из кода. Когда я устанавливаю размер в необработанных пикселях, есть ли способ установить размер в dip?

Ответы на вопрос(5)

Ваш ответ на вопрос