2011-02-10 3 views
3

J'essaie de porter une application de javaME à Android. J'ai une partie où la classe graphique est utilisée.Portage JavaME à Android

J'ai utilisé le pont Android J2ME (http://www.assembla.com/wiki/show/j2ab/Converting_From_J2ME/8) pour accéder à la classe Graphics. Im manque encore quelques-unes des méthodes telles que:

  • getStrokeStyle()
  • setStrokeStyle()
  • drawRGB()
  • fillTriangle()

aussi comment puis-je utiliser Vector?

exemple: Vector polylines = g.getPolylines();

Répondre

1

J'ai créé un J2ME- automatique> convertisseur Android dans notre société. Mapper les graphiques J2ME (javax.microedition.ldcui.Graphics) aux graphiques Android (android.graphics.Canvas) est vraiment facile.

setStrokeStyle - changement effet chemin sur votre instance de peinture

 
PathEffect EFFECT_DOTTED_STROKE = new DashPathEffect(new float[] {2, 4}, 4); 

if (style == SOLID) { 
    strokePaint.setPathEffect(null); 
} 
else { 
    strokePaint.setPathEffect(EFFECT_DOTTED_STROKE); 
} 

drawRGB - appeler directement une méthode Canvas

 
public void drawRGB(int[] rgbData, int offset, int scanLength, int x, int y, int width, int height, boolean processAlpha) { 
    canvas.drawBitmap(rgbData, offset, width, x + translateX, y + translateY, width, height, processAlpha, null); 
} 

fillTriangle - en utilisant un chemin

 
public void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3) { 
    Path path = new Path(); 
    path.moveTo(x1 + translateX, y1 + translateY); 
    path.lineTo(x2 + translateX, y2 + translateY); 
    path.lineTo(x3 + translateX, y3 + translateY); 
    path.close(); 

    strokePaint.setStyle(Paint.Style.FILL); 
    canvas.drawPath(path, strokePaint); 
} 

par Vector vous voulez dire java.util.Vector? L'API Android contient exactement la même classe ...

1

vous pouvez dessiner des formes en réécrivant la méthode onDraw dans une mise en page par exemple

protected void onDraw(Canvas canvas) { 
    canvas.drawCircle(cx, cy, radius, paint) 
}