Прежде всего, вам нужно понять коэффициент масштабирования в Android, ниже ссылка будет полезна для вас Ссылка на Android документ
Допустим, в вашем случае вы хотите поддерживать dpiдиапазон между 320+ до 480 точек на дюйм.Ваша поддержка устройства попадает в следующий диапазон
xlarge XHDPI and normal XXHDPI resolution
Я предпочитаю следующий способ ..
1) For every imageview, I will have fixed width and height in dp values
ex: width=60dp && height = 60dp.
2) LayoutContainer width and height ideally you need to use match_parent and wrap_content.
3) I will place drawable in XHDPI and XXHDPI only.
drawable-xhdpi
drawable-xxhdpi
4) I will create and place layouts in
layout-xhdpi-xlarge-port
layout-xxhdpi-port
5) Try to use dimens.xml where dimensions such as dp and sp can be different for different resolution
values-xhdpi-xlarge
values-xxhdpi
6) Include screen resolution in manifest, which you need to support
<compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi" />
.
.
.
<screen android:screenSize="small" android:screenDensity="xxxhdpi" />
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
.
.
.
<screen android:screenSize="normal" android:screenDensity="xxxhdpi" />
<!--- Adding support for Huwaei devices -->
<screen android:screenSize="large" android:screenDensity="320" />
<screen android:screenSize="large" android:screenDensity="480" />
or
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<screen android:screenSize="normal" android:screenDensity="xxhdpi" />
</compatible-screens>
</manifest>
7) Do the last thing now in manifest file again....
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="false"
android:xlargeScreens="false"/>
Above are some of these ways you can support non-standard dpi devices...