2013-07-12 206 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處理