Autore Topic: Inserire bussola in un layout  (Letto 713 volte)

Offline brastolfo

  • Utente junior
  • **
  • Post: 77
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc Nexus One
  • Sistema operativo:
    Vista
Inserire bussola in un layout
« il: 25 Gennaio 2011, 12:19:09 CET »
0
Ciao a tutti,
ho disegnato tramite la classe canvas una bussola, il cui codice è il seguente
Codice (Java): [Seleziona]
public class Compass extends View {
        private Paint _paint;
        private Path mPath=new Path();
        public Compass(Context context) {
                super(context);
                mPath.moveTo(0, -50);
        mPath.lineTo(-20, 60);
        mPath.lineTo(0, 50);
        mPath.lineTo(20, 60);
        mPath.close();
                _paint=new Paint();
        }
        @Override
        protected void onDraw(Canvas canvas) {
                // Coloro lo sfondo su cui disegnare
                canvas.drawColor(Color.WHITE);
                // Attivo l'Antialiasing
                _paint.setAntiAlias(true);
                // Setto il colore con il quale andremo a disegnare sul Canvas
                _paint.setColor(Color.BLACK);
                // Imposto lo stile da utilizzare
                _paint.setStyle(Paint.Style.FILL);
                int w = canvas.getWidth();
        int h = canvas.getHeight();
        int cx = w / 2;
        int cy = h / 2;
        canvas.translate(cx, cy);
        canvas.drawPath(mPath,_paint);
        }
}
ora vorrei inserirla in un layout da me precedentemente creato che richiamo in un'altra classe
Codice (Java): [Seleziona]
public class NavigaActivity extends Activity {
        public double lon;
        public double lat;
        private Compass cp;
        // Otteniamo i riferimenti alla Text View
        private TextView latitudinePos;
       private TextView longitudinePos;
        // Otteniamo il riferimento al LocationManager
       LocationManager locationManager;
      LocationListener locationListener;
      private MyLocationOverlay myLocationOverlay;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        cp=new Compass(this);
        setContentView(R.layout.naviga);
il layout in questione come si può vedere dal codice è naviga.xml,come faccio ad inserire la mia bussola in questo layout?
Nel caso in cui dovevo inserire solo la bussola da me creata avrei dovuto scrivere
Codice (Java): [Seleziona]
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        cp=new Compass(this);
        setContentView(cp);
ma in questo caso? Se volessi inserire la bussola all'interno del mio layout naviga.xml?Grazie mille per l'aiuto..

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Inserire bussola in un layout
« Risposta #1 il: 25 Gennaio 2011, 15:25:29 CET »
+1
devi definire questo costruttore
Codice (Java): [Seleziona]
public Compass(Context context, AttributeSet attrs)tenendo anche quello che hai già
Codice (Java): [Seleziona]
public Compass(Context c).
Le operazioni che fai nel costruttore che hai già, chiaramente devi ripeterle nel nuovo costruttore.

Poi per inserire la view nell'xml fai:

Codice (XML): [Seleziona]
<il.tuo.package.Compass
 android:id="@+id/compass"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 />

per usarla:
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.naviga);
        Compass cp=(Compass)findViewById(R.id.compass);
...



« Ultima modifica: 25 Gennaio 2011, 15:29:28 CET da Qlimax »

Offline brastolfo

  • Utente junior
  • **
  • Post: 77
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc Nexus One
  • Sistema operativo:
    Vista
Re:Inserire bussola in un layout
« Risposta #2 il: 25 Gennaio 2011, 15:55:59 CET »
0
GRAZIE !!!! Sei stato chiarissimo e mi hai risolto un grandissimo problema  :D
Ora però non vedo più il layout naviga..praticamente ho bisogno di sovrapporre la bussola all altro layout in modo che naviga.xml faccia da sfondo, mentre la bussola abbia lo sfondo trasparente per poter rendere visibile naviga.xml .. non so se sono stato chiaro  o_O Sai per caso come posso fare?
Grazie mille e scusa se ti disturbo ancora..

Offline brastolfo

  • Utente junior
  • **
  • Post: 77
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc Nexus One
  • Sistema operativo:
    Vista
Re:Inserire bussola in un layout
« Risposta #3 il: 25 Gennaio 2011, 17:10:30 CET »
0
Ho risolto anche questo problema  :D
Grazie ancora  ;-)

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Inserire bussola in un layout
« Risposta #4 il: 26 Gennaio 2011, 11:43:34 CET »
0
come hai risolto con un frameLayout?

Offline brastolfo

  • Utente junior
  • **
  • Post: 77
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc Nexus One
  • Sistema operativo:
    Vista
Re:Inserire bussola in un layout
« Risposta #5 il: 26 Gennaio 2011, 11:53:34 CET »
0
No praticamente ho risolto andando a modificare la grandezza dei due layout che risultavano sovrapposti.. ho modificato l'altezza,la larghezza ed i margini.. una soluzione secondo me non proprio ottimale ma efficace  :D
Il problema ora sarà riuscire ad orientarla  o_O

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Inserire bussola in un layout
« Risposta #6 il: 26 Gennaio 2011, 12:08:35 CET »
0
capito :)
alla peggio se il risultato non ti soddisfa ancora dai un occhio ai framelayout...se hai usato photoshop funzionano esattamente come i layer permettendo tra l'altro di portarli uno sopra l'altro a runtime ;)

Offline brastolfo

  • Utente junior
  • **
  • Post: 77
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc Nexus One
  • Sistema operativo:
    Vista
Re:Inserire bussola in un layout
« Risposta #7 il: 26 Gennaio 2011, 12:31:19 CET »
0
capito :)
alla peggio se il risultato non ti soddisfa ancora dai un occhio ai framelayout...se hai usato photoshop funzionano esattamente come i layer permettendo tra l'altro di portarli uno sopra l'altro a runtime ;)

Grazie mille per il consiglio.. proverò a darci un'occhiata  ;-) 

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Inserire bussola in un layout
« Risposta #8 il: 26 Gennaio 2011, 12:43:57 CET »
0
figurati :)