我使用自定义的webview如下
<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>
我做了一些奇怪的事情,因为我需要满足以下条件
条件: webview宽度应始终可被3
整除所以我不能在上面的xml文件中给出固定值或fill_parent。例如,如果我给出fill_parent它适用于肖像(假设HVGA模拟器的纵向宽度= 480,可以被3整除)但是景观没有成功( bcz景观宽度800,不能被3整除。
解决方案应该适用于方向更改和设备更改“
我正在努力解决1或2像素值的差异,如果我满足条件,它就会被解决。 TIA ....
答案 0 :(得分:9)
HI,
您可以使用以下代码获取屏幕的高度和宽度:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
现在您有宽度可以检查它是否可以被3整除。如果是,那么很好,否则你可以从原始宽度中减去模数(宽度%3)并将其设置为webview的宽度。
以编程方式添加视图:
示例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:您不必在XML文件中添加webview对象。 “addView”功能会将您的webview添加到线性布局对象中。
希望这会有所帮助!!