Salve a tutti!
Sto facendo un pò di prove con i drawable e in particolare con RotateDrawable e ScaleDrawable..
Ho creato un piccolo programma che ha due Button (scale e rotate) che dovrebbero servire rispettivamente a ridimensionare e ruotare l'immagine di sfondo contenuta da LinearLayout.
Prima ho provato ad implementare singolarmente i due listener e funziona...
Se invece provo a gestire entrambe le azioni, ovviamente in relazione al Button premuto, funziona solo uno dei due (nel mio caso ruota).
Ecco il codice:
Credo proprio che il problema sia legato alla parte in grassetto perchè posso applicare solo un drawable alla volta, e quindi in questo caso viene preso rotateDrawable che è l'ultimo.codice:package it.apogeo.android.cap03.rotatedrawable; import android.app.Activity; import android.graphics.drawable.ScaleDrawable; import android.graphics.drawable.RotateDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; public class RotateDrawableActivity extends Activity { private final static int MIN_LEVEL = 0; private final static int MAX_LEVEL = 10000; private final static int STEP = 200; private int levelR=0, levelS = 0; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Otteniamo il riferimento a RotateDrawable e ScaleDrawable final ScaleDrawable scaleDrawable = (ScaleDrawable) getResources() .getDrawable(R.drawable.scale); final RotateDrawable rotateDrawable =(RotateDrawable) getResources().getDrawable(R.drawable.rotate); // Riferimento ai bottoni Button scala = (Button) findViewById(R.id.buttonS); Button ruota = (Button) findViewById(R.id.buttonR); // Riferimento al LinearLayout contenitore delle View LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayout); // Impostiamo lo ScaleDrawable come Background della View linearLayout.setBackgroundDrawable(scaleDrawable); linearLayout.setBackgroundDrawable(rotateDrawable); //scala scala.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { levelS += STEP; if (levelS > MAX_LEVEL) { levelS = MAX_LEVEL; } else if (levelR < MIN_LEVEL) { levelS = MIN_LEVEL; } Log.i("RotateScaleDrawableTestActivity", "Level: " + levelS); scaleDrawable.setLevel(levelS); } }); // Gestiamo gli eventi di pressione del button ruota ruota.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { levelR += STEP; if (levelR > MAX_LEVEL) { levelR = MAX_LEVEL; } else if (levelR < MIN_LEVEL) { levelR = MIN_LEVEL; } Log.i("Rotate", "Level: " + levelR); rotateDrawable.setLevel(levelR); } }); } }
Come posso gestire questa situazione?![]()

LinkBack URL
About LinkBacks
Ultima modifica di Supergiox; 18-12-10 alle
Rispondi quotando
)