Ci sto combattendo un po'...
Credo di essere arrivato a qualche conclusione.
Esiste una classe che si chiama ScaleGestureDetector.
Questa classe viene creata con un costruttore che assume come parametri context e un listener, per cui va creato anche il listener.
Dopo aver scritto un codice funzionante modificando pedissequamente il codice trovato in rete, come al solito rompo il Mandala e lo ricostruisco daccapo a titolo di esercitazione...
public class MainActivity extends Activity {
//dichiarazioni
ScaleGestureDetector scaleGestureDetector;
RelativeLayout mainLayout;
ImageView imageView;
Bitmap bitmap;
int bitmapHeight,bitmapWidth;
float scala=1.f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scaleGestureDetector=new ScaleGestureDetector(this,new simpleOnScaleGestureListener());
mainLayout=(RelativeLayout)findViewById(R.id.mainLayout);
imageView=new ImageView(this);
mainLayout.addView(imageView);
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.calcestruzzo);
bitmapHeight=bitmap.getHeight();
bitmapWidth=bitmap.getWidth();
drawMatrix();
}
private void drawMatrix(){
bitmapWidth*=scala;
bitmapHeight*=scala;
Bitmap resizedBitmap=Bitmap.createScaledBitmap(bitmap, bitmapWidth, bitmapHeight, false);
imageView.setImageBitmap(resizedBitmap);
}
@Override
public boolean onTouchEvent(MotionEvent event){
scaleGestureDetector.onTouchEvent(event);
return true;
}
private class simpleOnScaleGestureListener extends SimpleOnScaleGestureListener{
@Override
public boolean onScale(ScaleGestureDetector detector){
scala=detector.getScaleFactor();
drawMatrix();
return true;
}
}
}
Ecco: solo che aumentando e diminuendo le dimensioni un po' di volte mi allunga l'immagine...Ma per il momento c'è da essere soddisfatti!
Nessun commento:
Posta un commento