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