我正在试着在屏幕上绘制一些形状而失败。 我有一个SurfaceView类,我已将其设置为我的contentview,并尝试在其onSurfaceCreated调用中绘制一个椭圆,但没有任何东西被绘制。
我完全有可能不了解企业的整体性质。我的理解是,Surface基本上是一块空白的板岩,我可以在其上绘制我喜欢的任何东西。
这是我的代码(我不一定要“修复”这段代码,而不是以“正确”的方式执行此操作,无论是什么......,只是找不到解释此代码的文档。我不知道不想(或需要)OpenGL,只想手动绘制形状,文本等。
此代码运行(没有失败),但没有任何内容被绘制。
TIA
public class main extends Activity {
/** Called when the activity is first created. */
public Context c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Surf(this));
}
}
class Surf extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
Canvas can;
Context c;
private ShapeDrawable mDrawable;
SynField(Context context) {
super(context);
c = context;
this.layout(20, 20, 660, 500);
mHolder = getHolder();
//mHolder.addCallback(this);
//mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Log.d("MY_DEBUG", "drawing");
can = mHolder.lockCanvas();
int x = 10;
int y = 10;
int width = 300;
int height = 50;
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xcccccccc);
mDrawable.setBounds(x, y, x + width, y + height);
}
public void surfaceCreated(SurfaceHolder holder) {
Log.d("MY_DEBUG", "surface drawn");
mDrawable.draw(can);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
答案 0 :(得分:1)
试试这些
http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html
http://developer.android.com/guide/topics/graphics/index.html
答案 1 :(得分:1)
http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html http://www.devdaily.com/java/jwarehouse/android/core/java/android/view/SurfaceView.java.shtml
这些可能会有所帮助......
我认为你可以尝试在android sdk中使用Paint类来实现它。 可以做类似的事情:
Paint mypaint = new Paint(); Canvas c = new Canvas(); c.drawLine(10,10,20,20,mypaint);
答案 2 :(得分:0)
我在本教程中学到了很多关于如何创建绘图应用程序的知识。我相信它会有所帮助:
http://mobile.tutsplus.com/tutorials/android/android-sdk-create-a-drawing-app-interface-creation/