[and] Pinch to scale for pictures.

This commit is contained in:
d-kunin 2013-08-09 00:47:48 +03:00
parent 7e0346d269
commit 34cdc7903c
3 changed files with 26 additions and 2 deletions

View file

@ -9,6 +9,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
@ -105,6 +107,16 @@ public class ArticleInfoDetailFragment extends Fragment implements OnClickListen
super.onPageFinished(view, url);
Utils.fadeOut(getActivity(), mProgressContainer);
Utils.fadeIn(getActivity(), mWebView);
// If picture enable zoom, else disable
final WebSettings ws = mWebView.getSettings();
final boolean isPicture = Utils.isPictUrl(url);
ws.setBuiltInZoomControls(isPicture);
ws.setSupportZoom(isPicture);
ws.setLoadWithOverviewMode(isPicture);
ws.setLayoutAlgorithm(isPicture ? LayoutAlgorithm.SINGLE_COLUMN : LayoutAlgorithm.NARROW_COLUMNS);
ws.setUseWideViewPort(isPicture);
}
@Override

View file

@ -3,6 +3,7 @@ package com.example.travelguide.util;
import java.io.File;
import android.content.Context;
import android.os.Build;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
@ -90,4 +91,14 @@ public class Utils
target.startAnimation(anim);
}
public static boolean isPictUrl(String url)
{
return url.endsWith(".png") || url.endsWith(".jpg") || url.endsWith(".jpeg") || url.endsWith(".svg");
}
public static boolean isApiLevelAbove(int version)
{
return Build.VERSION.SDK_INT > version;
}
}

View file

@ -10,7 +10,7 @@ import android.webkit.WebView;
import com.example.travelguide.util.Utils;
@SuppressLint("SetJavaScriptEnabled")
@SuppressLint({ "SetJavaScriptEnabled", "NewApi" })
public class TgWebView extends WebView
{
@ -19,7 +19,8 @@ public class TgWebView extends WebView
super(context, attrs, defStyle);
final WebSettings settings = getSettings();
settings.setJavaScriptEnabled(true);
if (Utils.isApiLevelAbove(10))
settings.setDisplayZoomControls(false);
}
public TgWebView(Context context, AttributeSet attrs)