在我的Android应用中,我使用以下代码:
BitmapRegionDecoder decoder;
...
decoder = BitmapRegionDecoder.newInstance(myStream, false);
...
int width = -1, height = -1, left = -1, top = -1;
...
Log.d("GDA", left + " " + top + " " + width + " " + height);
Rect re = new Rect(left, top, width, height);
Log.d("GDA", re.toString());
if(decoder != null)
region = decoder.decodeRegion(re, null);
一切都适用于智能手机和7英寸平板电脑,但是10英寸平板电脑(我在三星GT10.1和Acer A501上测试过)我收到了这个错误:
1152 1728 2304 2592
Rect(1152, 1728 - 2304, 2592)
java.lang.NullPointerException
at android.graphics.BitmapRegionDecoder.decodeRegion(BitmapRegionDecoder.java:399)
我找不到解决方案。有没有人有同样的问题?有什么建议吗?
答案 0 :(得分:5)
解决方案:
不要使用“region = decoder.decodeRegion(re,null);”,例如使用:
BitmapFactory.Options options = new BitmapFactory.Options();
region = decoder.decodeRegion(re, options);
这是工作,检查Galaxy Tab 10.1 Android 4.0.x