Я использовал редактор макетов в 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. Что мне нужно сделать, чтобы убедиться, что все масштабируется соответствующим образом?
Edit:
Это отличные ответы, но мне нужно знать, как это сделать из кода. Когда я устанавливаю размер в необработанных пикселях, есть ли способ установить размер в dip?