Проблема с разрешением Android при отображении изображений на разных устройствах

У меня проблема с отображением размера изображения на устройствах с разным разрешением экрана. До сих пор я заметил, что размер подходит для «меньших» устройств — 240x320, 320x400, 400x800 (в основном, но не для всех)... но проблема возникает, когда я примеряю его, например, на Galaxy S3 (который составляет 720x1300), даже для некоторых 400x800.

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

RelativeLayout rl = new RelativeLayout(context);
LinearLayout.LayoutParams rlLayoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
rlLayoutParams.gravity = Gravity.CENTER;
rl.setLayoutParams(rlLayoutParams);

ImageView imageMain = new ImageView(context);
RelativeLayout.LayoutParams imageLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
imageLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
imageMain.setLayoutParams(imageLayoutParams);

rl.addView(imageMain);

Как видите, мне также приходится использовать относительный макет, потому что другие изображения (на самом деле значки) помещаются поверх основного (например, значки в углах), поэтому LinearLayout бесполезен... Есть ли шанс, что это может вызвать проблему? Или есть какие-либо другие параметры, которые необходимо учитывать, помимо разрешения экрана (ширина и высота экрана)?

Любой опыт по этому вопросу был бы очень полезен, поэтому, пожалуйста, сообщите, если есть какие-либо идеи...


person Leonidas    schedule 17.02.2013    source источник


Ответы (1)


Поместите свои изображения в папку drawable-nodpi....

person Pragnani    schedule 17.02.2013
comment
Праньяни, спасибо за ответ. Но изображения загружаются с сервера, как я уже упоминал, а не размещаются локально... есть другие идеи? - person Leonidas; 19.02.2013
comment
Я использую что-то подобное в своем приложении на основе разрешения экрана, масштабированного растрового изображения... вы можете попробовать это... scalebit=Bitmap.createScaledBitmap(bmp, (int)(Math.ceil(((float)bmp. getWidth())/NO_COLUMNS))*NO_COLUMNS, bmp.getHeight(), true); - person Pragnani; 21.02.2013
comment
Используйте Bitmap.createScaledBitmap для масштабирования изображения до необходимого размера. - person Pragnani; 21.02.2013