2014-02-06 4 views
0

В моем приложении для веб-просмотра я использовал stInitialScale() для масштабирования. Я сделал его пригодным для screendensity 240 * 400, и я подумал, что когда будут использоваться устройства с плотностью экрана больше, чем это, получите увеличенное изображение. Но веб-просмотр остается тем же самым уровнем масштабирования. Как я могу сделать webview подходящим для любых устройств с разной плотностью экрана. User_reg.javaКак увеличить веб-просмотр в соответствии с плотностью экрана

package com.example.samworkshops; 

import android.os.Bundle; 
import android.os.SystemClock; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.res.Configuration; 
import android.graphics.Color; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class User_reg extends Activity { 
private WebView webView; 
final Activity activity = this; 


@SuppressLint("SetJavaScriptEnabled") 
@Override 
public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 

     setContentView(R.layout.activity_user); 
     //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 


     webView = (WebView)findViewById(R.id.webView1); 
     webView.requestFocusFromTouch(); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setUseWideViewPort(true);               
     webView.getSettings().setLoadWithOverviewMode(true); 
     webView.getSettings().setBuiltInZoomControls(false); 
     webView.setHorizontalScrollBarEnabled(false); 

     webView.setInitialScale(90); 

     webView.loadUrl("http://app.samworkshops.org/User_Reg.aspx"); 

     webView.setVisibility(View.INVISIBLE); 
     webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) 
      { 
       activity.setTitle("Loading..."); 
       activity.setProgress(progress * 100); 

       if(progress == 100) 
        activity.setTitle(R.string.title_activity_user_reg); 
      } 
     }); 

     webView.setBackgroundColor(Color.parseColor("black")); 


     webView.setWebViewClient(new WebViewClient() { 


      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
      { 
       // Handle the error 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       view.loadUrl(url); 
       return true; 
      } 


      @Override 
      public void onPageFinished(WebView view, String url) { 
       StringBuilder builder = new StringBuilder(""); 


        builder.append("javascript:document.getElementById('Image3').style.visibility= 'hidden';"); 
        builder.append("javascript:document.getElementById('Image3').style.display = 'none' ;"); 
view.loadUrl(builder.toString()); 

       webView.setVisibility(View.VISIBLE); 
       SystemClock.sleep(2000); 

      } 


     }); 

    } 

} 

ответ

1

Добавьте эти строки в веб-зрения для того, чтобы пинч Уменьшить

 webview.getSettings().setSupportZoom(true); 
    webview.getSettings().setBuiltInZoomControls(true); 

ИЛИ

Вы должны разработать макет для каждого resoulation.

Refernce ссылка http://developer.android.com/guide/practices/screens_support.html

0
Try this may be it will solve you problem 

     Display display = getWindowManager().getDefaultDisplay(); 
     Point size = new Point(); 
     int width = display.getWidth(); 
     int height = display.getHeight(); 
     if (height > 800) { //Put value as per your requirements 

        //Set Zooming value 
     } else { 
         //Set Zooming value 

     } 
+0

спасибо ... его работу ... – user3256431

0
switch(this.getResources().getDisplayMetrics().densityDpi) 
     { 
     case DisplayMetrics.DENSITY_LOW: 

      MUL_RATIO = 0.75f; 
      break; 

     case DisplayMetrics.DENSITY_MEDIUM: 

      MUL_RATIO = 1.0f; 
      break; 

     case DisplayMetrics.DENSITY_HIGH: 

      MUL_RATIO = 1.5f; 
      break; 

     case DisplayMetrics.DENSITY_XHIGH: 

      MUL_RATIO = 2.0f; 
      break; 
     } 

Поместите фактор масштабирования уровня вы want.It может помочь вам

Смежные вопросы