[英]Change image in ImageView
在list_item.xml文件中,我有一個ImageView和一個TextView。 ImageView的代碼為
<ImageView
android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/play"/>
在主要活動(main_activity.java與具有一個ListView的activity_main.xml連接)中,當用戶從setAdapter設置的列表中單擊音樂(onItemClick)時,音樂播放良好。 現在,當音樂開始播放時,我想更改此ImageView的圖像。 所以我插入了如下代碼:
View inflatedView = getLayoutInflater().inflate(R.layout.list_item, null);
ImageView imgchange = (ImageView)inflatedView.findViewById(R.id.play);
imgchange.setImageResource(R.drawable.pause);
但這是行不通的。 我也試過
android:src="@drawable/imagename"
我也試過
imgchange.setBackgroundResource(R.drawable.pause);
尋找有價值的建議,如我該怎么做或錯誤在哪里?
過去我也遇到過類似的問題,這是由於布局本身沒有更新引起的。 更改圖像后嘗試刷新視圖的布局,如此處所述android以編程方式重新繪制布局
我將使用新的ContextCompat
而不是setBackgroundResource()
,如下所示:
imageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.pause));
您可以將Activity
作為Context
傳遞。 如果那不起作用,您也可以嘗試使視圖無效,這將強制重畫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.