作者puppyulove (WHY)
看板java
标题Re: [问题] 连续播放图片问题
时间Mon Feb 15 14:53:00 2016
※ 引述《omidofor (妈妈咪呀)》之铭言:
: 因为你没有提到任何相关资讯,
: 所以我假设你写的是Swing,
: 目的是希望当按下一个按钮之後,
: 会让一个Label以间隔一秒的速度不停的变换图片。
: 假设你想要让他变换10张图,
: 你目前的情况是:
: 按下按钮後,
: 视窗会停住10秒,
: 而最後停在最後一张图片。
: 原因在於,
: Swing在触发一个事件之後,
: 必须要等事件处理结束之後才会重新绘制画面。
: 你现在可能是这样做,
: 按下按钮 -> 执行actionPerformed -> 每秒换一张图片 -> 结束actionPerformed
: 以这个例子来说,
: 视窗要等到结束actionPerformed结束之後才会重新绘制画面。
: 因此你要在按下按钮後起一个thread负责去更新图片。
: 大概是这样。
: new Thread(){
: @Override
: public void run(){
: //do something
: }
: }.start();
: 你可以试试看用Java 8 Lambda改写这个。
: 另外如果你想写Java GUI的话,
: 建议你可以学JavaFx8,
: 这个功能就可以用animation来达成。
: 而且个人觉得JavaFx比Swing漂亮很多。
: 最後,
: 有些事情想说明一下。
: 有时候我们会看到板上有些发问的文章没有板众解答,
: 当出现这样子的情况时,
: 我觉得对发问者来说可能代表一种警讯。
: 「没有人回答不是这个问题没有人会,而是没有人知道你在问什麽。」
: 因此当你要发问的时候,
: 最好钜细靡遗的讲出,
: 你在写什麽、想写什麽功能、你是怎麽做的、程式码长怎样,
: 以及其他可以帮助板众了解问题的资讯。
: 不然板友可没有太多时间在那猜你的心思啊。
: 若是有不懂的或是情况不相同的话,
: 再回覆到板上吧。
: ※ 引述《puppyulove (WHY)》之铭言:
: : 请问一下如何连续播放图片
: : 大约是1秒钟放一张
: : 是设置sleep(1000)吗
: : 但这样子每次都只会跳出最後一张QQ
: : 请问要怎麽用呢?~
安安~
还有问题要请教您
我是利用setImageBitmap来生成图片(QR码)
外面包覆for回圈
像是
for(int i=0;i<=10;i++)
{
try {
BitMatrix matrix2 = writer.encode("1234", BarcodeFormat.QR_CODE, 800, 800);
mQrcodeImage.setImageBitmap(toBitmap(matrix2));
} catch (WriterException e) {}
try{
thread sleep(1000);
}catch(InterruptedException e1){}
}
这样的话要怎麽创新的thread更新图片,让它可以在这10张图片中各停顿一秒呢?
要在新增一个class作新的new thread 在呼叫进去吗?
感激~><
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.123.115.137
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1455519182.A.D90.html
1F:推 omidofor: 你这个问题我上篇文就回答你啦,你现在不清楚的应该是 02/15 18:02
2F:→ omidofor: thread的使用,找本书看一下比较能有全面的了解。 02/15 18:03
3F:→ Expsun: 官网有SwingWorker的教学 02/16 04:50
4F:→ puppyulove: 我加入了new Thread()但是跑第一张图完等一秒後就会 02/16 12:14
5F:→ puppyulove: ANR 跳出来QQ 为甚麽呢? 02/16 12:14
6F:→ puppyulove: 是要把原先位置的图移除後再放吗? 可以直接覆盖吗?~ 02/16 14:53
7F:推 omidofor: 结果现在才知道你在写android... 02/16 18:44
8F:→ puppyulove: 呃~ 差别在哪里呢QQ IDE吗 02/17 13:26
9F:→ puppyulove: 我去AS版问看看好了~~ 感谢 02/17 15:51