2011-12-21 44 views
12

Tôi có một ImageView rằng nên được thay đổi trên nhấp chuộtimageview.setBackgroundResource android() không hoạt động

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

khi nhấp phương pháp chạy và in ra "hey!" nhưng hình ảnh sẽ không thay đổi?

EDIT: quên đề cập đến rằng imageview chứa một hình ảnh được cung cấp bởi tập tin xml bố trí

+0

là hình ảnh mà ImageView của bạn chứa trong suốt? bởi vì nền là, tốt, trong nền – njzk2

+0

không có nó chỉ hoạt động tốt bây giờ –

Trả lời

41

Theo quy ước, bạn nên sử dụng setImageResource(R.drawable.img1); (hoặc setImageDrawable(getResources().getDrawable(R.drawable.img1));) thay vì setBackgroundResource(R.drawable.img1);.

+0

làm việc như quyến rũ: D cảm ơn bạn! –

+0

setImageDrawable sẽ không hoạt động trên kẹo trước. – Subho

+0

@Chris Cashwell cảm ơn bạn. –

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

    or 

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

Không có quy ước setimageResource() nào được sử dụng. Cả hai API đều có thể được sử dụng.

Ngoài ra, trong trường hợp của bạn, có vẻ như trường hợp không có nguồn tài nguyên đồng bộ hóa.

1

CẬP NHẬT

Bây giờ, bạn có thể sử dụng như dưới đây,

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

setImageDrawable sẽ không hoạt động trên kẹo trước – Subho

1

Hãy thử này Trong API 25

imgSchedule.setImageDrawable(getResources().getDrawable(R.drawable.circle_image_selected)); 
Các vấn đề liên quan