2011-02-10 110 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) 
}