在我努力制作自己的应用程序的过程中,我又碰上了另一堵砖墙。
细节
我今天决定,因为WebView
已经内置了缩放控件,我将从...迁移到它ImageView
...我的问题是我仍然有运行 API 3 的活跃用户...所以在编写更新时我必须牢记这一点这个应用程序
我想做什么?
只需从我的服务器加载图像并将其显示为适合WebView
窗口,该窗口的大小可能因屏幕而异。
你试过什么
尝试#1(我个人的尝试)
//iW & iH are the height and width of the image passed from the server
//Calc the scale needed to fit width
int scW = (int) ((iW / (float)wView.getMeasuredHeight()) * 100);
//Calc the scale needed to fit height
int scH = (int) ((iH / (float)wView.getMeasuredHeight()) * 100);
//fit the bigger of the 2
if (scW < scH)
{
wView.setInitialScale(scW);
}
else
{
wView.setInitialScale(scH);
}
String pUrl = "http://app.guycothal.com/Funnys/2012724133312929.png";
wView.loadUrl(pUrl);
这会在所有照片上留下一些空白空间
尝试 #2(在 StackOverFlow 上找到)
String pUrl = "http://app.guycothal.com/Funnys/2012724133312929.png";
String html="<html><body><img src=\"" + pUrl +
"\" width=\"10%37\" height=\"10%37\"/></body></html>";
wView.loadData(html, "text/html", "utf-8");
这使图像变得巨大......我的意思是巨大的
尝试#3(在 StackOverFlow 上找到)
wView.setWebViewClient(null);
wView.getSettings().setJavaScriptEnabled(true);
wView.getSettings().setLoadWithOverviewMode(true);//NEeds api 7
wView.getSettings().setUseWideViewPort(true);
wView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
wView.getSettings().setBuiltInZoomControls(true);
wView.getSettings().setSupportZoom(true);
wView.getSettings().setUseWideViewPort(true);
wView.setScrollbarFadingEnabled(false);//Needs api 5
String pUrl = "http://app.guycothal.com/Funnys/2012724133312929.png";
wView.loadUrl(pUrl);
除了需要和高于 3 的 API...即使没有这些行,它也会使图像再次变得巨大
尝试#4(再次在这里找到!!!<---至少我先搜索)
wView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
String pUrl = "http://app.guycothal.com/Funnys/2012724133312929.png";
wView.loadUrl(pUrl);
仍然需要 Froyo (API 7) 或更高版本
_试试#5(想了很久才写这个问题)
//iW & iH are the height and width of the image passed from the server
int iMW = imgView.getMeasuredWidth();
int iMH = imgView.getMeasuredHeight();
int scW = (int) ((iW / (float)iMW) * 100);
int scH = (int) ((iH / (float)iMH) * 100);
if (iMW < iW && iMH < iH)
{
if (scW < scH)
{
wView.setInitialScale(scW);
}
else
{
wView.setInitialScale(scH);
}
}
if (iMW < iW && iMH > iH)
{
wView.setInitialScale(scH);
}
if (iMW > iW && iMH < iH)
{
wView.setInitialScale(scW);
}
if (iMW < iW && iMH < iH)
{
if (scW > scH)
{
wView.setInitialScale(scW);
}
else
{
wView.setInitialScale(scH);
}
}
wView.loadUrl(pUrl);
下一步是什么?
我不知道从哪里开始……我整天都在为这件简单的事情自杀……在我拔头发之前请帮忙
ps 我是秃头……所以头发是个笑话