2015-07-10 44 views
0

我有一個繼承自RelativeLayout的自定義類。我有一個名爲control_btnImageButton,它被定義並添加到init()方法的佈局中。在onDraw,我有以下代碼(除其他事項外):ImageView setImageResource不起作用

control_btn.setImageResource(R.drawable.play_new); 
    control_btn.getLayoutParams().width = getPixels(20); 
    control_btn.getLayoutParams().height = getPixels(20); 
    control_btn.setX(getPixels(0)); 
    control_btn.setY(getPixels(10)); 
    control_btn.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    control_btn.setAdjustViewBounds(true); 
    control_btn.setPadding(0, 0, 0, 0); 
    control_btn.setBackgroundColor(Color.TRANSPARENT); 
    control_btn.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      control_btn.setImageResource(R.drawable.pause); 
      Log.d("WTH", "clicked"); 
     } 
    }); 

然而,圖像不會改變,儘管獲得日誌條目。 此外,我有另一個ImageButton具有完全相同的代碼,其圖像會改變(也在自定義類中)。

有關如何解決此問題的任何想法?

+1

嘗試將setImageResource放入init()方法 – rainash

+0

先生,您是一位天才。我以爲因爲我只是在改變一個視圖,所以onDraw不會被調用。請說這是一個答案,所以我可以標記它是正確的,並感謝一噸。 –

回答

2

setImageResource分成init()方法,則問題將被修復。