Java 具有操作功能的大型图像视图

Java 具有操作功能的大型图像视图,java,android,xml,Java,Android,Xml,我正试图找到一个简单的教程,在我的活动中使用图像视图来完成下面这些事情,但是我没有找到一个,因为我遇到的那些太复杂了,而且找不到实现所需的代码。我有1个XML(activity_map.XML)和1个Java类(MapActivity.Java)。有人知道吗 淘金 用两个手指捏来缩放 双击可放大和缩小 放大时平移 设置最大缩放级别 对以上所有内容使用大图像 到目前为止我的XML代码 <com.apptacularapps.exitsexpertlondonlite.MapImageVi

我正试图找到一个简单的教程,在我的活动中使用图像视图来完成下面这些事情,但是我没有找到一个,因为我遇到的那些太复杂了,而且找不到实现所需的代码。我有1个XML(activity_map.XML)和1个Java类(MapActivity.Java)。有人知道吗

  • 淘金
  • 用两个手指捏来缩放
  • 双击可放大和缩小
  • 放大时平移
  • 设置最大缩放级别
  • 对以上所有内容使用大图像
到目前为止我的XML代码

<com.apptacularapps.exitsexpertlondonlite.MapImageView
    android:id="@+id/imageView"
    android:layout_alignParentTop="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

请不要让我参考这些样品,因为它们工作不正常/不是我想要的:


查看TouchImageView:

使用

添加到build.gradle:

dependencies{
    ...
    compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.1.3'
}
默认布局文件“activity_main.xml”:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

不起作用。我因内存错误而退出<代码>原因:java.lang.OutOfMemoryError:未能分配353329500字节的分配,1048576个可用字节和63MB,直到OOM您尝试加载的映像有多大?如果353329500字节是您要加载的,请使用图像的缩小版本进行测试。我不想缩小,因为我的图像包含很多细节,放大后更清晰。我可以使用该代码的最大大小是多少?我不确定,但当抛出OOM错误时,您的应用程序只有1048576字节可用。是否可以对代码进行某些更改,以便我的活动与此示例的行为相同<代码>https://github.com/davemorrissey/subsampling-scale-image-view图像的二次采样位置。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(R.id.imageView);
    imageView.setImage(ImageSource.resource(R.drawable.cincinnatinight));
}