作者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/cn.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