我有一个ImageVIEw,要从中获取位图,然后使用copyPixelstoBuffer并将其复制到buffer_temp,现在我想使用反向算法再次将其转换为另一个位图,然后从该位图转换为ImageVIEw2,
我到底在做什么是使用Buffer在ImageVIEw中复制图像,然后使用Buffer将其粘贴到另一个ImagevIEw,但是在复制copyPixelsFromBuffer时总是抛出
@H_301_6@java.lang.NullPointerException: Attempt to invoke virtual method 'voID androID.graphics.Bitmap.copyPixelsFromBuffer(java.nio.Buffer)' on a null object reference.
不知道为什么,需要帮助,
@H_301_6@try { Buffer bfr = null; iv1.setimageResource(R.drawable.olx); BitmapDrawable drawable = (BitmapDrawable) iv1.getDrawable(); Bitmap bitmap = drawable.getBitmap(); int bytes=bitmap.getByteCount(); ByteBuffer buffer_temp= ByteBuffer.allocate(bytes); bitmap.copyPixelsToBuffer(buffer_temp); System.out.println("Values are "+ bitmap.getAllocationByteCount()); Bitmap btmp=null; //btmp.copyPixelsFromBuffer(buffer_temp); if(buffer_temp==null) return; buffer_temp.rewind(); btmp.copyPixelsFromBuffer(buffer_temp); if(buffer_temp==null) { Toast.makeText(getApplicationContext(), "Null", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "Not Null", Toast.LENGTH_SHORT).show(); } } catch (NotFoundException e) { // Todo auto-generated catch block e.printstacktrace(); }
解决方法:
btmp为空.
不可能通过使用附带的代码来实现,那么btmp的值将是任何值.但这是空的!
如果要克隆位图,请使用create方法或任何此类方法.
@H_301_6@Bitmap btmp = Bitmap.create(drawable.getBitmap());
总结 以上是内存溢出为你收集整理的尝试在空对象引用上调用虚拟方法’void android.graphics.Bitmap.copyPixelsFromBuffer(java.nio.Buffer)’全部内容,希望文章能够帮你解决尝试在空对象引用上调用虚拟方法’void android.graphics.Bitmap.copyPixelsFromBuffer(java.nio.Buffer)’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)