Android imageview.setBackgroundResource () не работает

Привет, я искал сеть и stackoverflow, но ничего не помогает

У меня есть изображение, которое нужно изменить при нажатии

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); } } } 

При нажатии кнопки метод запускается и выводит «эй!». Но изображение не изменится? Может кто-нибудь мне помочь

EDIT : забыл упомянуть, что imageview содержит другое изображение, предоставленное файлом макета xml

По соглашению, вы должны использовать setImageResource(R.drawable.img1); (Или setImageDrawable(getResources().getDrawable(R.drawable.img1)); ) вместо setBackgroundResource(R.drawable.img1); ,

  ImageView i = (ImageView) findViewById( R.id.imageView1 ); i.setImageResource(R.id.logo); or i.setBackgroundResource(R.drawable.icon); 

Это не означает, что setimageResource () следует использовать. Оба API могут использоваться.

Кроме того, в вашем случае это просто похоже на случай отсутствия ресурсов синхронизации.

ОБНОВИТЬ

Теперь вы можете использовать, как показано ниже,

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

Попробуйте это в API 25

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