2013-07-12 100 views
0

嗨Im新的Android开发,我希望让我的头绕着画布画。 我有几个问题,其中develop.android.com网站没有说清楚:使用画布绘图

- 你可以使用一个简单的画布为不同的意见,或者你必须创建一个新的画布,每次你想添加一个新的视图?

-Are位图可以绘制到画布上的唯一图像类型“东西”?例如在我的代码下面我有一个可绘制的叫漩涡但是我不能使用这个,我必须将其转换为位图?我该怎么做?

包ple.kon15;

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.drawable.Drawable; 
import android.util.AttributeSet; 
import android.view.SurfaceHolder; 
import android.view.View; 
import android.widget.ImageView; 

public class DrawBG extends View { 
Bitmap swirls = BitmapFactory.decodeResource(getResources(),R.drawable.swirls); 
public DrawBG(Context context) { 
    super(context); 
} 
    @Override 
    protected void onDraw(Canvas canvas) 
{ 
     super.onDraw(canvas); 
     canvas.drawBitmap(swirls, swirls.getWidth(), swirls.getHeight(),null); 
} 
    public DrawBG(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
} 
    public DrawBG(Context context, AttributeSet attrs) { 
     super(context, attrs); 
} 
} 

回答

0
  1. 是的,每个视图都有自己的画布。
  2. 可以使用绘图资源转换为位图: BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);
+0

啊我得到它的工作thx。 thx的答案也是如此 – jtmwanakhu

0

1 - 是的,每个观点都有自己的画布,但你也可以有一个具有一个画布, 2 - 你应该把它与解码复杂视图BitmapFactory.decodeResource(your_context.getResources(), R.drawable.swirls);使用。并且不只是位图,您可以使用画布绘制线条,顶点,矩形,圆角矩形,路径以及如果您想做更复杂的事情(如游戏或复杂动画),还可以使用SurfaceView,但您应该仔细考虑因为它有点更先进,给你所有的surcace处理