2016-03-01 155 views
0

我正在實例化onCreate函數中的畫布變量,如果我在onCreate函數中繪製一條線,則顯示正常。但是,如果我在按鈕的onClick函數中繪製線條,則不起作用。可能是什麼原因。Android:無法使用點擊功能在畫布上畫線

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     imageView = (ImageView) this.findViewById(R.id.imageView); 
     BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); 
     Bitmap bitmap = drawable.getBitmap(); 
     Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); 
     canvas = new Canvas(mutableBitmap); 
     imageView.setImageBitmap(mutableBitmap); 
     paint = new Paint(); 
     paint.setColor(Color.rgb(255, 153, 51)); 
     paint.setStrokeWidth(10); 
    } 

    public void displayLine(View view) { 
     canvas.drawLine(10, 20, 400, 500, paint); 
    } 
+0

這裏有很多代碼缺失。你的onClick處理程序在哪裏?你的畫布對象存儲在哪裏? displayLine在哪裏調用? –

+0

這是哪一種語言? –

+0

該按鈕被分配了displayLine的onClick函數。我不明白你的畫布對象的存儲。你能否詳細說明。奇怪的是,如果我在onCreate方法本身畫線(函數中的上面的語句),它會很好地畫出線條。但是,當我將該語句移動到按鈕的onclick函數時,它不再起作用 – srkmish

回答

0

不是我一定會這樣做......但你有沒有嘗試添加無效呼叫?即:

public void displayLine(View view) { 
     canvas.drawLine(10, 20, 400, 500, paint); 
     view.invalidate(); 
    }