2011-02-10 71 views
3

我试图将应用程序从javaME移植到Android。 我有一个使用图形类的地方。将JavaME移植到Android

我已经使用J2ME Android桥接器(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)非常简单。直接调用画布方法

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

由Vector你的意思是

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变化路径效应java.util.Vector中? Android API包含完全相同的类...

1

您可以通过覆盖的onDraw方法在布局 例如

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