最近有需求加载一张长宽比例值很大的图片,一开始想用ImageView和ScrollView实现,但是效果不是很好,这里记录了一下WebView的实现方法。
wb_img= (WebView) findViewById(R.id.wb_img);
wb_img .loadUrl(url);
WebSettings settings = wb_img.getSettings();
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setBuiltInZoomControls(false); //选择内置缩放机制与单独缩放控件;
settings.setDisplayZoomControls(false); //是否显示缩放控件
settings.setSupportZoom(false); //是否支持缩放
wb_img.setInitialScale(145); //第一次显示的缩放比例,例子是120%;
//注释掉 wb_img.setInitialScale(145); 使用下面代码,则自适应屏幕居中显示
----------------------------------------
//settings.setUseWideViewPort(true);
// settings.setLoadWithOverviewMode(true);
---------------------------------------------
wb_img.getSettings().setJavaScriptEnabled(true);//启用js
wb_img.getSettings().setBlockNetworkImage(false);//解决图片不显示
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
WebView显示图片的下面需要显示TextView文本,这里粘贴一下xml布局代码
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<WebView
android:id="@+id/wb_img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"/>
<LinearLayout
android:id="@+id/ll_text"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/mar_8"
android:paddingRight="@dimen/mar_8"
android:layout_below="@+id/wb_img"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/txt_14"
android:gravity="center_horizontal"
android:textColor="@color/black"
android:textStyle="bold"
android:text="家庭医生服务卡"/>
</LinearLayout>
</RelativeLayout>
</ScrollView>