Autore Topic: problema CustomView!  (Letto 632 volte)

Offline Marcox

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
problema CustomView!
« il: 14 Settembre 2012, 13:12:35 CEST »
0
ho creato una view con un cerchio sullo sfondo e un arco sopra di esso, adesso vorrei che ad ogni pressione di un button l angolo dell arco aumentasse di 90 gradi... ma per qualche motivo aumenta solo fino a 180 gradi... guardando il logCat invece l angolo continua ad aumentare come previsto... sapreste dirmi qual è il problema?
questo è il codice della mainActivity
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
        VortexView cerchio;
       
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    Button premi= (Button) findViewById(R.id.button1);
    cerchio = (VortexView) findViewById(R.id.cerchio);
    premi.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
                        // TODO Auto-generated method stub
                cerchio.cambiangolo(cerchio.getangolo()+90);
                        Log.d("angolo", String.valueOf(cerchio.getangolo()));
                }
        });
        }
   
}
e questo quello della View...
Codice (Java): [Seleziona]
public class VortexView extends View{
        Paint myPaint;
        int z,f;
        int x=256;
     int y=534;
     int r=100;
        float left=x-r;
        float right=x+r;
        float top= y-r;
        float bottom= y+r;
        int variabile;
        Paint paint2;
        RectF oval = new RectF(left,top,right,bottom);
int angl=0;
public VortexView(Context context, AttributeSet attrs) {
       
       
        super( context, attrs );
        myPaint=new Paint(); // pennello
    myPaint.setColor(Color.MAGENTA);  
    myPaint.setAlpha(150);
    myPaint.setAntiAlias(true);
    paint2=new Paint();
    paint2.setColor(Color.RED);
    paint2.setAntiAlias(true);
}
 




@Override
protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
       
       
        canvas.drawCircle(x, y, r, myPaint);
canvas.drawArc(oval,  -90, angl, true,   paint2);
       
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        z=MeasureSpec.getSize(widthMeasureSpec);
    f=MeasureSpec.getSize(heightMeasureSpec);
    setMeasuredDimension(z,f);
}



public void cambiacolore(){
paint2.setColor(Color.BLUE);
}
public void cambiangolo(int angolo){
angl=angolo;
}
public int getangolo(){
        return angl;
}
}

Offline Marcox

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
Re:problema CustomView!
« Risposta #1 il: 15 Settembre 2012, 11:51:43 CEST »
0
risolto dovevo aggiungere invalidate() nel metodo onDraw()...