如何在android中调整与屏幕大小相关的webview宽度?需要一个黑客

时间:2011-05-18 06:47:46

标签: android webview

我使用自定义的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 ....

1 个答案:

答案 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添加到线性布局对象中。

希望这会有所帮助!!