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

vns*_*tty 0 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>
Run Code Online (Sandbox Code Playgroud)

我做了一些奇怪的事情,因为我需要满足以下条件

条件:webview宽度应始终可以被3整除

所以我不能在上面的xml文件中给出固定值或fill_parent.例如,如果我给fill_parent它适用于肖像(假设HVGA模拟器的纵向宽度= 480,可被3整除),但没有成功的景观(bcz景观宽度) 800不能被3整除.

解决方案应该适用于方向更改和设备更改"

我正在努力解决1或2像素值的差异,如果我满足这个条件,它将被解决.TIA ....

mud*_*dit 9

HI,

您可以使用以下代码获取屏幕的高度和宽度:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)

现在你有宽度可以检查它是否可被3整除.如果是,那么很好,否则你可以从原始宽度中减去模数(宽度%3)并将其设置为webview的宽度.

以编程方式添加视图:

示例XML:

<LinearLayout (define id:testLayout, width, height here> </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

PS:您不必在XML文件中添加webview对象."addView"功能会将您的webview添加到线性布局对象中.

希望这可以帮助!!