3

Android アプリケーションを開発しています。ここでは、webview に URL 画像を表示しています。しかし、画像は私のウェブビューには合いません。ビューポートの概念を使用することをお勧めします。しかし、私はそれを完全に使用することはできません。問題を説明付きの図面形式で添付しました。使った

mWebView.getSettings().setUseWideViewPort (true);

しかし、良い結果は得られません。7 インチ、10 インチのタブレットを含むすべての解像度のデバイスで、フィットした画像を表示する必要があります。添付の画像を見て、私の webview の場所に URL 画像を合わせる正しい方法を教えてください。3番目の図と同じように自分のイメージを表示したいと思います。

画像をロードするための私のコードは次のとおりです。

webView = (WebView) findViewById(R.id.webimage);
        WebSettings webSettings = imageView.getSettings(); 
        webSettings.setLoadsImagesAutomatically(true);
        webSettings.setSupportZoom(true) ;
        webSettings.setBuiltInZoomControls(true);
        webView.setBackgroundColor(Color.TRANSPARENT);
        webView.getSettings().setUseWideViewPort (true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.setWebViewClient(new WebViewClient()
        {
        //some dialog implementation
        }
        webView.loadUrl(myurl);

ここに画像の説明を入力

4

3 に答える 3

2

imgのwidth属性を設定でき、height 属性を設定しないでください100%

<body >
<img id="resizeImage" src="you_image.png" width="100%" alt="" />
</body>

編集済み: 実際には私も同じ問題を抱えています。しかし、それでも私は正しい答えを待っています。

ここで私の質問を参照できます

私はいくつかの方法でこの問題をmanaging height and Widthデバイスのトリックで管理しました。wv.setInitialScale(185);ByDefaultを使用すると、ズームは左上隅になります。

私は自分のコードを下に置きました。

WindowManager mWinMgr;
    public static int displayWidth = 0, displayHeight = 0;

    @Override
    protected void onCreate(Bundle icicle) {
        // TODO Auto-generated method stub
        super.onCreate(icicle);
        // this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        // this.setProgressBarVisibility(true);
        mWinMgr = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
        displayWidth = mWinMgr.getDefaultDisplay().getWidth();
        displayHeight = mWinMgr.getDefaultDisplay().getHeight();

        setContentView(R.layout.view_my_poops);

        try {
            Map_Type = getIntent().getExtras().getString("MAP_TYPE");
        } catch (Exception e) {

        }
        Log.i(TAG, "MAP TYPE" + Map_Type);

    }

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

        WebView wv;

        wv = (WebView) findViewById(R.id.webview_MyPoops);
        wv.getSettings().setJavaScriptEnabled(true);
        // this.setProgressBarVisibility(true);
        if (displayWidth >= 552 && displayHeight >= 976 || displayWidth >= 976
                && displayHeight >= 552) {
            wv.setInitialScale(185);
        } else {
            // wv.setInitialScale(150);
        }
        // wv.setInitialScale(30);


        URL = "YOUR_URL";


        Log.i(TAG, "Loading URL" + URL);

        final Activity activity = ViewMyPoop.this;

        wv.setWebChromeClient(new WebChromeClient() {

            public void onProgressChanged(WebView view, int progress) {
                // TODO Auto-generated method stub
                // Log.i(TAG, "Inside OnProgress Changed" + URL);
                activity.setTitle("Loading...");
                activity.setProgress(progress * 100);
                if (progress == 100)
                    activity.setTitle("My title");
            }
        });

        wv.loadUrl(URL);
        wv.setWebViewClient(new WebViewClient());
}

それがあなたを助けることを願っています。

于 2012-11-22T11:56:10.347 に答える
1

上記の問題に対して以下のコードを試していますか:-

Display display = getWindowManager().getDefaultDisplay();
int width=display.getWidth();

String data="<html><head><title>Example</title><meta name=\"viewport\"\"content=\"width="+width+", initial-scale=0.65 \" /></head>";
data=data+"<body><center><img width=\""+width+"\" src=\""+url+"\" /></center></body></html>";
webView.loadData(data, "text/html", null);
于 2013-04-26T04:30:01.850 に答える
0

これを試すことができます:

webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);

参考:リンク

于 2012-11-22T11:52:11.150 に答える