2011-12-21 78 views
12

我有一個imageview的,應該在點擊機器人imageview.setBackgroundResource()不工作

public class Settings extends Activity implements OnClickListener 
{ 
    private ImageView im1; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.settings); 
     im1 = (ImageView) findViewById(R.id.imageView1); 
     im1.setOnClickListener(this); 
    } 
@Override 
public void onClick(View v) 
    { 
    // TODO Auto-generated method stub 
    if (v == im1) 
    { 
     Log.d("test", "hey!"); 
      v.setBackgroundResource(R.drawable.img1); 
      } 
    } 
} 

點擊的方法運行,並打印出時,可以更改「哎!」但圖像不會改變?

編輯:忘了提,imageview包含XML佈局文件提供

+0

是您的ImageView包含圖像透明?因爲背景很好,在後臺 – njzk2 2011-12-21 16:23:37

+0

不,現在工作正常 – 2011-12-21 16:32:28

回答

41

按照慣例另一個圖像,你應該使用setImageResource(R.drawable.img1);(或setImageDrawable(getResources().getDrawable(R.drawable.img1));),而不是setBackgroundResource(R.drawable.img1);

+0

工作就像魅力:D謝謝你! – 2011-12-21 16:29:00

+0

setImageDrawable不適用於預棒棒糖。 – Subho 2016-11-18 09:52:54

+0

@Chris Cashwell先生謝謝你。 – 2018-02-07 11:01:34

1
ImageView i = (ImageView) findViewById(R.id.imageView1); 
    i.setImageResource(R.id.logo); 

    or 

    i.setBackgroundResource(R.drawable.icon); 
-1

它沒有約定setimageResource()應該使用。 這兩個API都可以使用。

此外,就你的情況而言,它看起來像是不同步資源的情況。

1

UPDATE

現在,你可以使用如下,

imageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.img1)); 
+0

setImageDrawable不適用於前棒棒糖 – Subho 2016-11-18 09:52:47

1

嘗試這個在API 25

imgSchedule.setImageDrawable(getResources().getDrawable(R.drawable.circle_image_selected));