Autore Topic: Webview con Zoom  (Letto 616 volte)

Offline teo2490

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: 0
    • Mostra profilo
Webview con Zoom
« il: 17 Aprile 2013, 18:33:48 CEST »
0
Buonasera a tutti.
Ho un problema che non riesco a risolvere: vorrei che la mia activity visualizzasse una webview a tutto schermo con un immagine ridimensionata per stare nello schermo. Fin qui tutto bene. Vorrei però anche la possibilità di zoomare su quest'immagine, ma è come se lo zoom fosse bolccato e l'immagine rimane sempre a tutto schermo.
Il codice è il seguente:

Codice (Java): [Seleziona]
package teo2490.zuppa;

import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
import android.widget.Button;

@SuppressLint("NewApi")
public class Home extends Activity {
        private Button bottone1;
        public WebView wb;
       
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
           switch (item.getItemId()) {
              case android.R.id.home:
                 NavUtils.navigateUpTo(this,
                       new Intent(this, Home.class));
                 return true;
           }
           return super.onOptionsItemSelected(item);
        }
       
    @SuppressLint("NewApi")
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        wb = (WebView) findViewById(R.id.myWebView);
        wb.setBackgroundColor(Color.parseColor("#0099FF"));
        //
        WebSettings settings = wb.getSettings();
        settings.setDefaultTextEncodingName("iso-8859-1");
        settings.setBuiltInZoomControls(true);
       
        bottone1 = (Button) findViewById(R.id.bottone1);
        bottone1.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View view) {
                          finish();
                  }
                });
       
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
           getActionBar().setDisplayHomeAsUpEnabled(true);
           bottone1.setVisibility(View.GONE);
        }
       
        wb.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        String vsx="<img src='http://www.oratoriogavardo.it/public/navphp/oratoriogavardo/images/home/vsx.jpg'/>";
        String vdx="<img src='http://www.oratoriogavardo.it/public/navphp/oratoriogavardo/images/home/vdx.jpg'/>";
        //String vmx="<img src='http://www.oratoriogavardo.it/public/navphp/oratoriogavardo/images/home/vmx.jpg'/>";
        wb.loadData(vsx + "<br /><br />" + vdx + "<br /><br />" /*+ vmx*/, "text/html", "utf-8");
       
   
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_home, menu);
        return true;
    }
}

Come posso fare?
Grazie! :-)

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Webview con Zoom
« Risposta #1 il: 17 Aprile 2013, 19:40:47 CEST »
+1
Senza ricorrere ad un oggetto WebSettings...

Codice (Java): [Seleziona]
//zoom abilitato o no
webview.getSettings().setBuiltInZoomControls(true);

//default zoom. Può essere CLOSE (vicino), MEDIUM (medio, impostato di default),FAR(lontano)
webview.getSettings().setDefaultZoom(ZoomDensity.CLOSE);

//mostra o no i controlli per lo zoom. Se false solo tramite gesture, altrimenti mostra anche i controlli + e - (rimanendo abilitate le gesture)
webview.getSettings().setDisplayZoomControls(false);
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.