作者yukihello (HelloKiKi)
看板AndroidDev
標題[問題] imageView圖片變換問題
時間Thu May 24 11:26:15 2018
想請問...
我有三個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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.119.49
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1527132377.A.F0B.html
※ 編輯: yukihello (125.227.119.49), 05/24/2018 11:32:36
1F:→ kobe8112: 話說你switch怎麼少一個break? 05/24 11:59
哈哈哈 原本有8個拉 我要節省所以砍掉好幾個 不小心誤砍XD
2F:推 erty0402: sleep不好吧,用sendmessagedelayed試試 05/24 12:19
好哦 我研究看看!!!
※ 編輯: yukihello (125.227.119.49), 05/24/2018 12:23:22
3F:推 andy2151: UI相關要在mainthread喔 05/24 12:34
4F:推 t52101t: switch (imgview的id) id的變換寫在哪裡呢? 05/24 12:49
5F:→ t52101t: 另外如樓上說的 UI的設置要寫在MainThread中 05/24 12:50
我存在一個array裡,沒複製到 現在補上了QAQ
有點不懂t大第二點的意思
※ 編輯: yukihello (125.227.119.49), 05/24/2018 13:17:25
6F:推 andy2151: 就你的程式碼看起來 通常用Thread.sleep不會用在 05/24 13:39
7F:→ andy2151: MainThread, 所以如果在非MainThread裡做UI相關 05/24 13:40
8F:→ andy2151: 會有錯誤 05/24 13:40
解決了....對不起我就只是懶得寫執行緒而已 嗚嗚
TimerTask 跟 handler解決惹 謝謝各位大大QAQ
※ 編輯: yukihello (125.227.119.49), 05/24/2018 13:52:11