RadialGradient auf Milestone - keine Wirkung?

Compufreak

Compufreak

Erfahrenes Mitglied
60
Halli Hallo,

ich habe es nun endlich doch mal geschafft, mich der Androidprogrammierung zuzuwenden und bin kurz davor mein Buch (Professional Android Application Development) geschafft zu haben, um genau zu sein bin ich gerade dabei das letzte Beispiel nachzuprogrammieren... Dabei geht es vor allem um optische Feilereien an einem Kompass, dazu wird auch ein RadialGradient verwendet, das seltsame bei diesem ist, dass er auf dem Galaxy (Android 1.5) mit den gleichen Zeilen Code zu funktionieren scheint, auf dem Milestone (Android 2.0.1) allerdings nicht. Auch Google konnte mir nichts zu dem Problem sagen.


radialGradient.png


Hier der Code dazu :
Code:
// Initialisierung :
        borderGradientColors=new int[4];
        borderGradientPositions=new float[4];
        borderGradientColors[3]=myResources.getColor(R.color.outer_border);
        borderGradientColors[2]=myResources.getColor(R.color.inner_border_one);
        borderGradientColors[1]=myResources.getColor(R.color.inner_border_two);
        borderGradientColors[0]=myResources.getColor(R.color.inner_border);
        
        borderGradientPositions[3]=0.0f;
        borderGradientPositions[2]=1- 0.03f;
        borderGradientPositions[1]=1- 0.06f;
        borderGradientPositions[0]=1.0f;


// in der onDraw-Methode :

RadialGradient borderGradient=new RadialGradient(px,py,radius,
                borderGradientColors,borderGradientPositions,
                TileMode.CLAMP);
        Paint pgb=new Paint();
        
        pgb.setShader(borderGradient);
canvas.drawOval(boundingBox,pgb);
Was meint ihr - könnte es sein, dass das irgendwie am Code liegt (Vlt. muss man bei Android 2 explizit irgendeinen Grafikmodus aktivieren?) oder ist das ein Fehler/eine Änderung von Android seit 2.0 (siehe edits)?



/edit : Auch im Emulator sieht es so aus, dass es bei Android 2.0.1 nicht funktioniert, bei 1.5 schon... Teste mal noch andere Versionen (wenn die Emulatoren schneller booten würden!)

/edit²:
Funktioniert mit Android 1.5[HVGA getestet] und 1.6[sowohl WVGA als auch HVGA),
nicht aber mit Android 2.0[HVGA],Android2.0.1[WVGA], Android 2.1[WVGA]

Nicht aufgezählte Auflösungen habe ich nicht getestet, aber scheint ja an der Android-Version und nicht an der Auflösung zu liegen.


/edit³ : Kann mal bitte ein Mod den Titel vom Thread auf "RadialGradient teilweise keine Wirkung ab Android 2.0?" o.ä. ändern?

/edit^4: Hmm seltsam, der folgende Gradient geht wieder auf allen Androiden? Auch wenn ich den einzigen offensichtlichen Unterschied zwischen den 2 Gradienten neben der Arraygröße und dem Zeitpunkt, wann sie gezeichnet werden ausbügele und die Farben beim nicht funktionierenden Radienten nicht aus den Ressourcen lade und verschiedene Transparenzen benutze, bleibt der Effekt der selbe - der Kreis kriegt durchgehend die Farbe der ersten im Farbarray angegebenen Farbe ab Android 2.0...

Code:
//Initialisierung...
        int glasscolor=245;
        glassGradientColors[4]=Color.argb(65, glasscolor, glasscolor, glasscolor);
        glassGradientColors[3]=Color.argb(100, glasscolor, glasscolor, 0);
        glassGradientColors[2]=Color.argb(50, glasscolor, 0, glasscolor);
        glassGradientColors[1]=Color.argb(0, 0, glasscolor, glasscolor);
        glassGradientColors[0]=Color.argb(0, glasscolor, glasscolor, glasscolor);
        
        glassGradientPositions[4]=1-0.0f;
        glassGradientPositions[3]=1-0.06f;
        glassGradientPositions[2]=1-0.10f;
        glassGradientPositions[1]=1-0.20f;
        glassGradientPositions[0]=1-1.0f;



//onDraw
        RadialGradient glassShader=new RadialGradient(px,py,(int)innerRadius,
                glassGradientColors,glassGradientPositions,TileMode.CLAMP);
        Paint glassPaint=new Paint();
        glassPaint.setShader(glassShader);
        canvas.drawOval(innerBoundingBox, glassPaint);
Hier nochmal ganz gut im Bild zu sehen - der innere bunte Ring (Quelltext unten) funktioniert, hingegen die Schattierung am äußeren,grauen Ring (Quelltext oben) nicht :confused::confused::confused:.
radialGradient.png
 
Zuletzt bearbeitet:

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
132
swa00
swa00
5
Antworten
22
Aufrufe
1.422
590239
5
B
Antworten
4
Aufrufe
495
bb321
B
Zurück
Oben Unten