private void calculateAndZoom() {
matrix.set(getImageMatrix());
printMatrixValues(getImageMatrix());
float startpointY = (start_y_rel/ template_y_rel) * getHeight() * scale;
float startpointX = (start_x_rel/template_x_rel)* getWidth() * scale;
PrintDevMessage.print("Width: " + getWidth() + " Height: " + getHeight());
matrix.setScale(1,1,0,0);
matrix.postScale(scale, scale, startpointX, startpointY);
this.setScaleType(ImageView.ScaleType.MATRIX);
this.setImageMatrix(matrix);
printMatrixValues(getImageMatrix());
}
start_y_rel ve start_x_rel template_y_rel göre puan ve template_x_rel
Herhangi bir önceki yakınlaştırmayı kaldırmak ve ilk konuma geçmek için matrix.setScale (1,1,0,0) kullanıyorum.
Bu kod, ölçek 3 ile çalışır, ancak başka bir ölçek denediğimde, yanlış konuma zoom yapar.
private void calculateAndZoom() {
float cScale=getMatrixValue(getImageMatrix(),Matrix.MSCALE_X);
float newScale = ((float)1.0/cScale)*scale;
matrix.set(getImageMatrix());
printMatrixValues(matrix);
float startpointY = ((start_y_rel/template_y_rel) * getHeight());
float startpointX = ((start_x_rel/template_x_rel) * getWidth());
PrintDevMessage.print("Width: " + getWidth() + " Height: " + getHeight());
matrix.postScale(newScale, newScale, startpointX, startpointY);
this.setScaleType(ImageView.ScaleType.MATRIX);
this.setImageMatrix(matrix);
printMatrixValues(getImageMatrix());
}
Ben ekrandan daha büyük ve ImageView yerleştirildiğinde ölçek değiştiğinde olmak resmin dikkate almadılar: Baş-çizilmemesi 3 gün sonra ben çözümü buldum böylece