簡體   English   中英

在Android模擬器中使用按鈕進行縮放和平移

[英]zooming and panning with buttons in android emulator

我正在嘗試為我的uni項目實現縮放功能。 因此,我的應用程序從SD畫廊加載圖片。 它具有用於縮放和平移的按鈕。 我必須在模擬器中實現此項目。

到目前為止,我主要發現了多點觸控或雙指縮放的解決方案。 但是我不能使用多點觸摸,因為模擬器不允許這樣做,這也是我教授的要求。 我只通過鼠標單擊按鈕就找不到真正的縮放來源。 任何提示從哪里/如何開始?

謝謝!

好的,在這里,我終於想出了一個無需使用按鈕即可捏住的縮放代碼。 我把它放在這里,以防其他人需要這樣的東西。 但是我想仍然可以對其進行優化。 例如,該代碼缺少平移功能,以防您需要。 縮放也可能無法滿足您的需求,在這種情況下,您可以根據需要進行調整。

package com.example.ZoomApp;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.widget.ImageView;

public class ZoomInOut extends ImageView
{
    Matrix matrix = new Matrix();
    float saveScale = 1f;
    float right, bottom, origWidth, origHeight, bmWidth, bmHeight;

     public ZoomInOut(Context context, AttributeSet attr){
        super(context, attr);
        setScaleType(ScaleType.MATRIX);
        matrix.setTranslate(1f, 1f);
        setImageMatrix(matrix);
    }

    public void ZoomIn () {          

        saveScale = saveScale + 0.1f;
        matrix.setScale( saveScale, saveScale );
        setImageMatrix( matrix );
        center(true, true);
        invalidate();
    }    

    public void ZoomOut () {         

        saveScale = saveScale -  0.1f;
        matrix.setScale( saveScale, saveScale );
        setImageMatrix( matrix );
        invalidate();
    }    
    @Override
    public void setImageBitmap(Bitmap bitmap){
        bmWidth=bitmap.getWidth();
        bmHeight=bitmap.getHeight();
        super.setImageBitmap(bitmap);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM