[問題] imageView圖片變換問題

作者: yukihello (HelloKiKi)   2018-05-24 11:26:15
想請問...
我有三個imageView(以下用iV1、2、3代替)
然後有A B兩張圖片,三個imageView預設都是A圖
我需要依序將圖片換成B圖,但是到下一個iV的時候前一個iV要換回A圖
流程大概是這樣
iV1=B iV2=A iV3 =A -> iV1=A iV2=B iV3=A ->iV1=A iV2=A iV3=B
設定步數決定最後一定會有一張圖是B圖。
但是我實作後畫面的顯示不會有中間的變換
直到程式停止後才會顯示最後的結果
i為步數、nowpos是定位用
try{
int[] iVid = {R.id.iv1,R.id.iv2,R.id.iv3}
for(int i = 0 ; i<10;i++){
if(i > 3){nowpos = i%3-1;}else{nowpos=i;}
switch (iVid[nowpos])
{
case R.id.vI1:
vI3.setImageResource(A圖);
vI1.setImageResource(B圖);
break;
case R.id.vI2:
vI1.setImageResource(A圖);
vI2.setImageResource(B圖);
break;
case R.id.vI3:
vI2.setImageResource(A圖);
vI3.setImageResource(B圖);
break;
}
Thread.sleep(1000);
}}catch (InterruptedException e){e.printStackTrace();}
程式大概是這樣 , 請問各位先進 可以指導一下小弟嗎 謝謝Q_Q
作者: kobe8112 (小B)   2018-05-24 11:59:00
話說你switch怎麼少一個break?
作者: erty0402 (缺副駕駛)   2018-05-24 12:19:00
sleep不好吧,用sendmessagedelayed試試
作者: andy2151 (阿鴻)   2018-05-24 12:34:00
UI相關要在mainthread喔
作者: t52101t (五子棋)   2018-05-24 12:49:00
switch (imgview的id) id的變換寫在哪裡呢?另外如樓上說的 UI的設置要寫在MainThread中
作者: andy2151 (阿鴻)   2018-05-24 13:39:00
就你的程式碼看起來 通常用Thread.sleep不會用在MainThread, 所以如果在非MainThread裡做UI相關會有錯誤

Links booklink

Contact Us: admin [ a t ] ucptt.com