Android ImageView Увеличение и уменьшение масштаба - PullRequest
96 голосов
/ 11 июля 2011

Я хочу увеличить и уменьшить масштаб Android ImageView. Я пробовал большинство примеров, но во всех из них изображение в самом ImageView становится увеличенным и уменьшенным, в то время как я хочу увеличить и уменьшить масштаб ImageView. Я хочу увеличить ширину и высоту ImageView при увеличении и уменьшить ширину и высоту ImageView при уменьшении. Как мне этого добиться?

Ответы [ 22 ]

0 голосов
/ 20 июля 2017

Просто измените ACTION_MOVE_EVENT в Чираг Раваль Ответ , чтобы установить ZOOM_IN LIMIT

float[] values = new float[9]; matrix.getValues(values);
                //0.37047964 is limit for zoom in
                if(values[Matrix.MSCALE_X]>0.37047964) {
                    matrix.set(savedMatrix);
                    matrix.postScale(scale, scale, mid.x, mid.y);
                    view.setImageMatrix(matrix);
                }else if (scale>1){
                    matrix.set(savedMatrix);
                    matrix.postScale(scale, scale, mid.x, mid.y);
                    view.setImageMatrix(matrix);
                }
0 голосов
/ 10 июля 2017

Ссылка ZoomLib: https://drive.google.com/uc?export=download&id=0B34PUThnUsjVaHpkaGk0Z1hSRU0

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dummy_layout_for_zooming);// Activity layout 
mZoomLinearLayout = (LinearLayout) findViewById(R.id.mZoomLinearLayout);// LinearLayout inside Activity layout
View v = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layout_for_zoom, null, false);// View wants to zoom
v.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
ZoomView zoomView = new ZoomView(this);// intialize lib
zoomView.addView(v);
mZoomLinearLayout.addView(zoomView);
}
...