Предполагая, что размеры родительского вида не зависят от плотности, вы можете использовать imageView.setScaleType для CENTER_CROP или CENTER_INSIDE для масштабирования изображений.
http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
EDIT **
Если вы просто хотите, чтобы изображение помещалось на весь экран, задайте для imageview fill_parent для ширины и высоты, а затем установите для изображения этого просмотра изображения соответствующий тип масштаба. Не уверен, зачем тебе нужны собственные алгоритмы ..
Редактирование ***
Это стандартная проблема; поддержка нескольких размеров экрана и масштабирование соответственно. Основная идея состоит в том, чтобы избежать указания фактических пикселей и вместо этого использовать независимые от плотности пиксели. Смотрите это: http://developer.android.com/guide/practices/screens_support.html и это: http://developer.android.com/guide/practices/tablets-and-handsets.html
Как правило, все сводится к использованию единиц "dp" в xml и в коде для определения единиц (для размеров текста и ширины / высоты и т. Д.) Как бы ни было ваше число TIMES getResources (). GetDisplayMetrics (). применить соответствующий коэффициент масштабирования.