У меня проблема с отображением размера изображения на устройствах с разным разрешением экрана. До сих пор я заметил, что размер подходит для «меньших» устройств — 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 бесполезен... Есть ли шанс, что это может вызвать проблему? Или есть какие-либо другие параметры, которые необходимо учитывать, помимо разрешения экрана (ширина и высота экрана)?
Любой опыт по этому вопросу был бы очень полезен, поэтому, пожалуйста, сообщите, если есть какие-либо идеи...