需求是要加载一张存放在项目里的长图,支持缩放,第一反应想到的最容易的办法就是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方法设置自适应屏幕,
效果