Java &引用;“放大/缩小”;安卓系统中点击按钮时的图像?

Java &引用;“放大/缩小”;安卓系统中点击按钮时的图像?,java,android,zooming,Java,Android,Zooming,我是Android的新手。我一直在关注这个问题,我成功地缩放了一幅图像。这段代码运行得很好。有人能帮助我如何在点击按钮时为zoomin zoomout编写代码吗?我不知道如何完成这项任务 这是我遵循的教程,也是我遵循的教程“” 它工作正常,但我无法在放大和缩小图像时应用比例因子放大/缩小按钮上图像的最简单方法是在webView中显示它,然后您可以使用webView提供的所有功能 将图像复制到“资源”文件夹中,然后将其加载到onCreate中: WebView mWebView = (WebVie

我是Android的新手。我一直在关注这个问题,我成功地缩放了一幅图像。这段代码运行得很好。有人能帮助我如何在点击按钮时为zoomin zoomout编写代码吗?我不知道如何完成这项任务

这是我遵循的教程,也是我遵循的教程“”


它工作正常,但我无法在放大和缩小图像时应用比例因子

放大/缩小按钮上图像的最简单方法是在webView中显示它,然后您可以使用webView提供的所有功能

将图像复制到“资源”文件夹中,然后将其加载到onCreate中:

WebView mWebView = (WebView) findViewById(R.id.webView1);
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
mWebView.setBackgroundColor(Color.parseColor("#ffffff"));
mWebView.loadUrl("file:///android_asset/image.png");
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setInitialScale(50);

您需要将这两种方法添加到
TouchImageView
类中:

public void zoomIn() {
    oldScale = saveScale;

    if(saveScale<=maxScale)
    {
        saveScale += .5;
        matrix.setScale(saveScale, saveScale);
        setImageMatrix(matrix);
        invalidate();

        // Center the image
        // Center the image
        if(bmHeight>bmWidth)
        {
        redundantXSpace = width - (saveScale * bmWidth);
        redundantXSpace /= 2;
        }
        else 
        {
            redundantYSpace = height - (saveScale * bmHeight) ;
            redundantYSpace /= 2;
        }

        matrix.postTranslate(redundantXSpace , redundantYSpace );
        setImageMatrix(matrix);
        invalidate();
    }
}

public void zoomOut() {

    if(saveScale>=minScale)
    {
        saveScale -= .5;
        matrix.setScale(saveScale, saveScale);
        setImageMatrix(matrix);
        invalidate();

        // Center the image
        if(bmHeight>bmWidth)
        {
        redundantXSpace = width - (saveScale * bmWidth);
        redundantXSpace /= 2;
        }
        else 
        {
            redundantYSpace = height - (saveScale * bmHeight) ;
            redundantYSpace /= 2;
        }
        matrix.postTranslate(redundantXSpace , redundantYSpace );
        setImageMatrix(matrix);
        invalidate();
    }
}
以下是如何在缩放/缩放按钮中使用它们:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.LAYOUT_NAME);

    Button zoonIn = (Button)findViewById(R.id.ZOOM_IN_BUTTON_ID);
    Button zoonOut = (Button)findViewById(R.id.ZOOM_OUT_BUTTON_ID);

    final TouchImageView touch = (TouchImageView)findViewById(R.id.YOUR_TOUCH_IMAGE_VIEW_)ID);

    Bitmap bImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.DRAWABLE_ID);

    touch.setImageBitmap(bImage);

    touch.setMaxZoom(4f); //change the max level of zoom, default is 3f


    zoonIn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            touch.zoomIn();
        }
    });


    zoonOut.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            touch.zoomOut();
        }
    });

}

我希望这有帮助。

尝试使用。我想这是你想要的

你有兴趣用xml做这项工作吗?没有id nt想要使用xml我已经提到了我想通过定义缩放来做的教程请检查答案,谢谢。如何使用webView支持的内置(-/+)缩放控制器来实现最大和最小缩放级别>。下面是一个例子:。或者,如果要设置初始缩放级别,请使用以下方法:mWebView.setInitialScale(50);输入值在0-100%之间。它肯定有效,所以我要投票,但是请注意,在ImageView中显示图像与在ImageView中显示图像有一些区别:1)ImageView中的图像会自动调整大小以适应视图的大小,2)在ImageView中有一些简单的选项可以将图像居中。您能帮我吗?我想在需要放置“ImageView”时固定页眉和页脚在滚动视图中,我已经这样做了,但有时我的imageview太短,页脚消失。这是我的xml。你可以编辑它,以便更清晰地显示图像,但页眉和页脚应该固定。这里触摸的imageview的大小非常小,并且显示在center@MrSMAK你能帮我写下和zoomin相同的代码吗用于分页的zoomout按钮。我正在使用分页,在每个页面上都会有一个图像、zoomin和zoomout按钮。我将在哪里为zoomin和zoomout按钮编写代码?我可能需要在此方法中编写zoomin和zoomout btns功能:公共对象实例化Item(视图组容器,int位置){}@ErumHannan此链接准确地解释了您要查找的内容:
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.LAYOUT_NAME);

    Button zoonIn = (Button)findViewById(R.id.ZOOM_IN_BUTTON_ID);
    Button zoonOut = (Button)findViewById(R.id.ZOOM_OUT_BUTTON_ID);

    final TouchImageView touch = (TouchImageView)findViewById(R.id.YOUR_TOUCH_IMAGE_VIEW_)ID);

    Bitmap bImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.DRAWABLE_ID);

    touch.setImageBitmap(bImage);

    touch.setMaxZoom(4f); //change the max level of zoom, default is 3f


    zoonIn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            touch.zoomIn();
        }
    });


    zoonOut.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            touch.zoomOut();
        }
    });

}