需求是要加载一张存放在项目里的长图,支持缩放,第一反应想到的最容易的办法就是webview了,上代码
布局就是web 没啥说的
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ui.activity.android.WorldCupGame.WorldCupGameActivity"> <WebView android:id="@+id/web" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
然后是问的设置支持手势缩放,不显示控制器
package com.yblt.hct.ui.activity.android.WorldCupGame; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import com.yblt.hct.R; import com.yblt.hct.ui.activity.BaseActivity; import butterknife.BindView; import butterknife.ButterKnife; public class WorldCupGameActivity extends BaseActivity { @BindView(R.id.web) WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_world_cup_game); } @Override public void initView() { ButterKnife.bind(this); webView.getSettings().setSupportZoom(true);//缩放 webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false);//不显示控制器 webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webView.getSettings().setLoadWithOverviewMode(true); webView.loadUrl("file:///android_res/mipmap/worldcup.png"); } }
setLoadWithOverviewMode方法设置自适应屏幕,
效果