我在一个android手机游戏中,使用了三个SurfaceView,但是只有一个Activity,其中在一个SurfaceView中要使用Toast来显示一些提示的信息。我的Toast使用如下。
Toast toast = new Toast(context);
toast.setView(ImageView);
toast.setGravity(Gravity.CENTER,0,0);
toast.setDuration(Toast.LENGTH_SHORT);
然后有一个判断语句,当满足条件的时候->toast.show();
注:我在游戏中多处使用了toast,但是有两处即使是满足了条件,也不能显示toast.
求解?
------解决方案--------------------
不能显示,说明你的SurfaceView有问题
------解决方案--------------------
后台跟踪下吧
------解决方案--------------------
debug一下吧
------解决方案--------------------
也有可能是那个判断条件不满足。。。
------解决方案--------------------
你的这个Toast.setView(ImageView)有错,Toast.setView()中应该放一个View.你先这样做,创建一个view,然后再里面添加ImageView,再把view添加到Toast中试试!
------解决方案--------------------
Toast显示图片吗?
- Java code
Toast toast = new Toast(this); ImageView view = new ImageView(this); view.setImageResource(R.drawable.icon);toast.setView(view); toast.show();
------解决方案--------------------
toast.setView(ImageView); XX
------解决方案--------------------
Imageview iv = new ImageView(this);
iv.setImageResource(R.drawable.icon);
Toast toast = Toast.makeText(this, "aaaa", Toast.LENGTH_SHORT);
toast.setView(iv);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
可以正常显示出来。
但是如果你的imageview是从布局中findviewbyid的方式获取的就会出现错误java.lang.IllegalArgumentException: View not attached to window manager
------解决方案--------------------
你这么说看不出来,建议你把相关的代码抽取出来,写个测试工程看看结果
------解决方案--------------------
看log信息,如果不报错,那就是条件不满足,报错了那就是toast建的有问题。
------解决方案--------------------
先不添加view,只让它显示文字,试试能不能出来提示
toast.maketext()