当前位置: 代码迷 >> Android >> Android java.lang.IllegalAraumentException: x+width must be <=bit地图.width错误解决方
  详细解决方案

Android java.lang.IllegalAraumentException: x+width must be <=bit地图.width错误解决方

热度:74   发布时间:2016-05-01 16:15:55.0
Android java.lang.IllegalAraumentException: x+width must be <=bitmap.width异常解决方
 new Thread(new Runnable(){           int xpos=0;//定义一个移动的常量			public void run() {				// TODO Auto-generated method stub				while(true){					//得到一个消息对象					Message msg=handler.obtainMessage();				    if(xpos>=srcbmp.getWidth()){				    	xpos=0;				    }//这里判断移动的长度是否大于图片宽度                  msg.arg1=xpos;                  xpos+=50; 					try{						Thread.sleep(100);								}catch(InterruptedException e){						e.printStackTrace();					}					handler.sendMessage(msg);			}			}        }).start();

?最近项目中要实现一个云彩移动的动画的效果。出现java.lang.IllegalAraumentException: x+width must be <=bitmap.width异常?????

我是先创建? 要达到云彩移动的动画。我写一个线程如上所示? 然后在Handler 的sendHandler()方法里

创建方法如下

srcbmp=BitmapFactory.decodeResource(getResources(),R.drawable.yun);        mx=new Matrix();        mx.postScale((float)1.0,(float)1.0);
Bitmap resizebmp = Bitmap.createBitmap(srcbmp, msg.arg1, 0, 320, 205,?????? mx, true);?

??创建bitmap

?云彩? 移动的重点在于线程里的xpos参数? xops+=1;每次都在上次一次的x坐标軕上加1.(这个数由你定。看你需要移动的快慢) 。??? 现在来说异常解决的办法。 其实发生这个异常是由于

if(xpos>=srcbmp.getWidth()) 

?这个里面的判断

? 应该让改成

if(xpos+320>=srcbmp.getWidth()) 

?

? 这样就不会有这个错误了。

  相关解决方案