2016-12-25 156 views
0

我發現很少有關如何使用安卓畫布的教程。但是,在查看官方文檔後,我能夠生成此代碼。我只想畫一個綠色的矩形。安卓畫布不畫圖

public class LevelActivity extends AppCompatActivity { 

    Object shape; 
    Target target; 

    Rect r; 
    Paint paint; 

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(b); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_level); 

     paint = new Paint(); 
     paint.setColor(Color.GREEN); 
     paint.setStyle(Paint.Style.FILL); 

     r = new Rect(); 
     r.set(0,0,c.getWidth(),c.getHeight()/2); 

     c.drawRect(r,paint); 

     shape = new Shape(30,10); //Object setup 
     //shape.pick(); //Pick random point for target 
    } 

} 

我不想使用customView繪製,我只想使用純粹的android canvas。當我運行代碼時,我不會收到任何錯誤或任何警告。

任何幫助,非常感謝。

-Kelton

+0

你需要畫在畫布上的觀點。 –

+0

@MatthewHooker這是否意味着我必須創建一個實現視圖的新類?或者我會怎麼去做呢? –

+0

findViewById會讓你看到。 https://developer.android.com/reference/android/support/v7/app/AppCompatActivity.html –

回答

1

好了,你有一個帆布c與下面的位圖b。現在,您在畫布c上繪製的任何內容都將實際繪製在位圖b上。你已經在上面的代碼中完成了繪圖部分。位圖b有您的繪製的矩形。但現在要查看您需要在某個視圖中加載此位圖b,如ImageView。您可以在activity_level佈局中使用ImageView,然後使用ImageView.setImageBitmap(b)將位圖加載到視圖中。

0

你需要在最後添加以下兩行:

ImageView iv= (ImageView) findViewById(R.id.imageview_where_i_will_put_my_awesome_green_rectangle); 
     iv.setImageBitmap(b);