5

WebView で表示しているモバイル Web ページがありますが、何らかの理由で境界線のレンダリングが異なります (1px または 2px の太さ)。誰もそれを経験しましたか?

以下のサンプル画像は、上が 1 ピクセル、下が 1 ピクセルの div が、上が 1 ピクセル、下が 2 ピクセルでレンダリングされる様子を示しています。この問題は他の場所でも発生し、デザインが安っぽく見えます...

助言がありますか?

ここに画像の説明を入力

いくつかのコード

アクティビティ

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        deleteDatabase("webview.db");
        deleteDatabase("webviewCache.db");
        WebView mywebview = (WebView) findViewById(R.id.webview);

         mywebview.loadUrl("http://example.mobi/");
         WebSettings webSettings = mywebview.getSettings();
         webSettings.setJavaScriptEnabled(true);
         //webSettings.setBuiltInZoomControls(true);
         mywebview.setWebViewClient(new WebViewClient());

    }

}

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" >

    <WebView android:id="@+id/webview" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent"
         />

</RelativeLayout>

HTML

...
 <meta name="viewport" content="target-densitydpi=device-dpi; width=device-width; initial-scale=1; minimum-scale=1; maximum-scale=1; user-scalable=0;">
<div id="mobilesStatusSubmit">
   post status
</div>
....

CSS

div#mobilesStatusSubmit{
width: 100%;
height: 30px;
padding-top:10px;
font-size: 16px;
font-weight: bold;
color: #2684b0;
text-align: center;
background: white;
display: block;
border-top: 1px solid #bbbbbb;
border-bottom: 1px solid #bbbbbb;

}

電話

ギャラクシー S2

4

2 に答える 2

4

この問題の解決策を見つけました。次のチュートリアルで詳しく説明されています。

どうやら画面密度は境界線に影響を与え、私のGalaxy S2は〜1.5ピクセル密度であるため、一部の境界線では1pxが2になります(おそらく〜半分の時間)

https://web.archive.org/web/20120703185504/http://bradbirdsall.com/mobile-web-in-high-resolution

これが他の人に役立つことを願っています。

于 2013-01-24T06:51:02.377 に答える
2

これを試しましたか...

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        deleteDatabase("webview.db");
        deleteDatabase("webviewCache.db");
        WebView mywebview = (WebView) findViewById(R.id.webview);
       mywebview .setKeepScreenOn(true);
            mywebview .getSettings().setJavaScriptEnabled(true);
             mywebview .getSettings().setDomStorageEnabled(true);
             mywebview .getSettings().setBuiltInZoomControls(true);
             mywebview .setInitialScale(100);
            mywebview .getSettings().setUseWideViewPort(true);
             mywebview .setWebViewClient(new MyWebViewClient());
              mywebview .setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
            mywebview.loadUrl("http://example.mobi/");
           WebSettings webSettings = mywebview.getSettings();
           webSettings.setJavaScriptEnabled(true);
         //webSettings.setBuiltInZoomControls(true);
         mywebview.setWebViewClient(new WebViewClient());

    }
于 2013-01-19T06:24:17.700 に答える