解决方案 »
- 如果设置设备播放上电脑就出现盘符
- 自己写的googlemap程序怎么一装到自己的手机上就是灰屏了...在模拟器上是好的,是不是签名的问题还是谷歌的什么没有设置?
- setRequestedOrientation 后如何判断横竖屏
- 高分求助!!android 访问web服务器,能载入页面,能登录,查询数据无返回
- ADT_9.0.0.zip离线安装出错
- 坑爹的GridView
- 求当android sdk manager 没有办法用时的替代解决方法
- 用ksoap2调用webService出现错误
- Android存储头像
- setLayoutParams不生效,请大家指点
- 开着豌豆荚怎么那么耗CPU呢:(
- 求助~ZXING使用问题
你说这个函数没问题,是用这个函数读了图片并显示了吗?
InputStream is = am.open(fileName); 文件名正确否
image = BitmapFactory.decodeStream(is); 解码成功否?Z有没有异常信息呢?
我在View中调用此函数后,获得了一个Bitmap对象,然后用调用了Canvas对象的drawBitmap方法,调用该方法时报空指针。你说这个函数没问题,是用这个函数读了图片并显示了吗?
调用此函数返回的Bitmap对象不为空,用于绘制该Bitmap的Canvas也不为空。文件名正确,解码异常报什么我不清楚,但是logcat中没有相关的异常。
我的代码如下(你试一下吧,我找不出错误的原因):
public class Wh extends SurfaceView implements SurfaceHolder.Callback{ private SurfaceHolder sh = null;
private Canvas mCanvas = null;
private Bitmap bt = null;
public Wh(Context context) {
super(context);
sh = this.getHolder();
sh.addCallback(this);
this.setFocusable(true);
} public void Draw(){
mCanvas = this.sh.lockCanvas();
if(mCanvas!=null)p("Canvas is not null....");
bt = getImageFromAssetsFile("icon.png");
if(bt!=null)p("bt is no null.wolegequ...");
mCanvas.drawBitmap(bt,null,null); this.sh.unlockCanvasAndPost(mCanvas);
}
/**
* 从Assets中读取图片
*/
private Bitmap getImageFromAssetsFile(String fileName)
{
Bitmap image = null;
AssetManager am = getResources().getAssets();
try
{
InputStream is = am.open(fileName);
image = BitmapFactory.decodeStream(is);
is.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return image;
}
public void surfaceCreated(SurfaceHolder holder) {}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} public void surfaceDestroyed(SurfaceHolder holder) {} public void p(Object o){
System.out.println(o);
}
}图片是drawable中的icon.png,放在了assets文件夹下的根路径。
matrix参数不能为空的
mCanvas.drawBitmap(bt,null,null);
改成
mCanvas.drawBitmap(bt,new Matrix(),null);