我最近一直致力于编写一个基本的webcomic应用程序,并且一直有关于webview如何显示漫画的问题。图像本身可以很好地加载,但是图像的上方或侧面总是存在多余的空白,图像始终位于webview的左上角。此外,通常webview会在一定程度上放大图像,这是一个问题,因为漫画的尺寸不同。
我想让图像加载,使其居中,根据高度或宽度(取决于哪个)进行调整,以便整个图像可见,并且如果可能的话消除空白。不幸的是,我无法提供问题的任何截图,因为无论出于何种原因,任何模拟器都无法运行该应用程序。
就代码而言,我只有以下内容:
<WebView
android:id="@+id/webView1"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:layout_below="@+id/textView1"
android:layout_gravity="center"
android:layout_centerHorizontal="true" />
在类中,我的代码是这样的,image是一个字符串,其中包含我从页面的HTML中提取的图像URL:
WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.loadUrl(image);
答案 0 :(得分:2)
尝试设置android:layout_height="wrap_content"
关于空白问题,请尝试查看This Link
答案 1 :(得分:0)
试试这个:
String dataString = "<head><style type='text/css'>"
+"body{margin:auto auto;text-align:center;} </style></head>"
+"<body><img src=\"image.png\"/></body>";
webview.loadDataWithBaseURL("file:///android_res/drawable/",dataString,"text/html","utf-8",null);
// set image scale to fit screen if larger than screen width
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels; // minus some padding values if you have any left/right padding
Drawable drawable = getResources().getDrawable(R.id.image);
int wi = drawable.getIntrinsicWidth();
double scale = (wi>screenWidth) ? (double)screenWidth/wi : 1.0;
wv.setInitialScale((int) (scale*100));
在这种情况下,image.png
是文件名,位于res / drawable文件夹中。