2011-02-10 2 views
3

Я пытаюсь перенести приложение из javaME в Android. У меня есть часть, где используется класс графики.Портирование JavaME на Android

Я использовал модем Android J2ME (http://www.assembla.com/wiki/show/j2ab/Converting_From_J2ME/8), чтобы получить доступ к классу Graphics. Им до сих пор отсутствуют некоторые из таких методов, как:

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

Кроме того, как я использовать вектор?

пример: Vector polylines = g.getPolylines();

ответ

1

Я создал автоматический J2ME-> Android конвертор в нашей компании. Сопоставление графики J2ME (javax.microedition.ldcui.Graphics) с графикой Android (android.graphics.Canvas) очень просто.

setStrokeStyle - изменить путь влияния на краску, например

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

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

drawRGB - непосредственно вызов метода холст

 
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 - используя путь

 
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); 
} 

векторными вы имеете в виду java.util.Vector? Android API содержит точно такой же класс ...

1

вы можете рисовать фигуры перезаписи метода OnDraw в макете , например

protected void onDraw(Canvas canvas) { 
    canvas.drawCircle(cx, cy, radius, paint) 
} 
Смежные вопросы