Как настроить ширину веб-просмотра в зависимости от размера экрана в Android? нужен взлом - PullRequest
0 голосов
/ 18 мая 2011

Я использую настроенное веб-представление следующим образом

<merge
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:MyWebView="http://schemas.android.com/apk/res/com.mds.android.mireader.webview"   android:background="#FFFFFF"  android:layout_height="fill_parent" android:layout_width="fill_parent">


 <com.mds.android.mireader.webview.MyWebView
 xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/myweb"     **android:layout_width="318px"**  android:layout_height="fill_parent" > </com.mds.android.mireader.webview.MyWebView>

я делаю что-то странное, для этого мне нужно выполнить следующее условие

условие: ширина веб-просмотра всегда должна делиться на3

Так что я не могу дать фиксированное значение или fill_parent в вышеупомянутом xml-файле. Например, если я даю fill_parent, он отлично работает для портрета (предположим, эмулятор HVGA с портретной шириной = 480, который делится на 3) но безрезультатно для пейзажа (ширина пика 800, которая не делится на 3).

Решение должно работать как для изменения ориентации, так и для изменения устройства "

Я борюсь с разницей в значениях в 1 или 2 пикселя, и это будет решено, если я выполню это условие . TIA....

1 Ответ

9 голосов
/ 18 мая 2011

HI,

Вы можете получить высоту и ширину экрана, используя следующий фрагмент кода:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;

Теперь у вас есть ширина, которую вы можете проверить, делится ли она на 3или нет.Если да, то хорошо, иначе вы можете вычесть модуль (ширина% 3) из исходной ширины и установить его как ширину вашего веб-просмотра.

Добавить представление программно:

Пример XML:

<LinearLayout (define id:testLayout, width, height here> </LinearLayout>

Java-код:

LinearLayout linLayout = (LinearLayout) findViewById(R.id.testlayout);
// create an object of your webview and set all the properties you want like background color etc.
MyWebView myWebView = new MyWebView(); 

linLayout.addView(myWebView, new LinearLayout.LayoutParams(<my calculated width>, LayoutParams.FILL_PARENT);

PS: вам не нужно добавлять объект webview в ваш XML-файл.Функция «addView» добавит ваше веб-представление в объект линейного макета.

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...