Android 缩放-用两个手指捏

Android 缩放-用两个手指捏,android,pinchzoom,Android,Pinchzoom,我有一个与TextView、ImageView、EditText、RadioGroup相对应的应用程序 如何简单地为整个屏幕启用收缩放大/缩小功能 没有办法在androidmanifest中启用选项吗?我必须把所有的东西都编码吗?我可以把我的屏幕看作位图吗?< /P> 我还有几个活动:我需要在每个活动中复制代码吗 谢谢 您不需要向清单文件添加任何特殊权限 您尝试使用以下代码进行缩放 public class MainActivity extends Activity { private

我有一个与TextView、ImageView、EditText、RadioGroup相对应的应用程序

如何简单地为整个屏幕启用收缩放大/缩小功能

没有办法在androidmanifest中启用选项吗?我必须把所有的东西都编码吗?我可以把我的屏幕看作位图吗?< /P> 我还有几个活动:我需要在每个活动中复制代码吗


谢谢

您不需要向清单文件添加任何特殊权限

您尝试使用以下代码进行缩放

public class MainActivity extends Activity {
    private ImageView imageView;
    private ScaleGestureDetector scaleGestureDetector;
    private Matrix matrix = new Matrix();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView)findViewById(R.id.imageView);
        scaleGestureDetector = new ScaleGestureDetector(this,new ScaleListener());
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        scaleGestureDetector.onTouchEvent(ev);
        return true;
    }

    private class ScaleListener extends ScaleGestureDetector.
            SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            float scaleFactor = detector.getScaleFactor();
            scaleFactor = Math.max(0.1f, Math.min(scaleFactor, 5.0f));
            matrix.setScale(scaleFactor, scaleFactor);
            imageView.setImageMatrix(matrix);
            return true;
        }
    }
}

不幸的是,没有一种简单的方法可以实现从收缩到缩放

是的,你需要对“一切”进行编码

但是,在这种特殊情况下,您为什么需要这种功能? 当你有一个大图像,或者你的用户需要移动的任何表面时,可以使用“收缩到缩放”

您所描述的看起来像一个表单,为什么您的用户可以使用缩放


Yan

首先,在e.e.com.example.pintchzoomdemo的任何包中创建一个名为TouchImageView的类,然后复制粘贴给定的代码 然后,所有您需要做的就是使用线下的任何地方,您需要的imageView是pintch放大一样

<com.example.pintchzoomdemo.TouchImageView
                android:id="@+id/ImageView01"
                android:layout_width="1020dp"
                android:layout_height="690dp"/>


这就是你需要对图像进行俯仰缩放的地方,使用packagename.TouchImageView而不是ImageView,这就是你不必做任何其他事情的地方

你可以做一些事情,比如在不同的全屏ImageView活动中打开图像,对于pintch to zoom功能,你可以使用这个类。这包括双击放大/缩小我看到了那个。伙计,这是每个活动都要添加的一大块代码!我认为Andoid应该让我们的生活更简单。你不必在每个活动中都添加代码,您只需创建一个类粘贴该代码,而不是布局xml中的ImageView,只需给出类名称,例如,如果您在com.example.pintchzoomdemo中创建类,并且类名为TouchImageView,则需要指定,而不是像我应该做测试一样。我想问一下,活动之间的代码共享情况如何。我认为每个活动都是一个独立的实体?原因很简单,在大多数情况下,我的应用程序都很好,但在老年人的情况下,他们希望放大文本。你知道iocomments是否容易点击错误的按钮。。。您知道iOS是否相同吗?您有一个编辑按钮;)我认为iOS是一样的。我不知道是否有可能做到你想要的。我正在开发一个应用程序,它使用一个夹点来缩放,但是它在一个自定义视图上,所有的都是关于重新绘制对象的。这里不一样,文本也一样吗?imageview示例也适用于textview吗?我不知道此解决方案的详细信息,请尝试;)我见过这个例子。在我的情况下,我有一点所有的东西:textview、edittxt、radiobutton…在这种情况下,你应该发布你的努力(代码)和问题,以便我们能够解决它…@narb你尝试过这个吗?还没有。因为它不是那么简单,它已经成为第二优先权。这是非常简单的相信我,只有3个步骤和它完成了,在我的回答中描述的你可以在10分钟内做到:)我相信你。当我完成当前任务时,它是我列表中的下一个任务。应该是周末了。我会提供反馈。