Tentative d'invoquer la méthode virtuelle " void android.les graphiques.Bitmap.copyPixelsFromBuffer(java.nio.Tampon " sur un objet nul de référence
J'ai un ImageView
je suis bitmap de celui-ci, et ensuite utiliser copyPixelstoBuffer
et je suis le copier à buffer_temp
, maintenant je veux utiliser l'inverse de l'algorithme de nouveau de le convertir à une autre image et de l'image bitmap à ImageView2
,
exactement ce que je suis en train de faire est de Copier une Image dans ImageView
à l'aide de Buffer
et Pasting
sur un autre Imageview
à l'aide de Buffer
, mais lors de la Copie copyPixelsFromBuffer
toujours jeter
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.copyPixelsFromBuffer(java.nio.Buffer)' on a null object reference.
Ne sais pas pourquoi, Besoin d'aide,
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();
}
- avez-vous initialiser btmp?
- oui, je n'ai aditya
- utiliser un débogueur et vérifiez le contenu de votre buffer_temp après buffer_temp.rewind() cette erreur n'est possible que lorsque buffer_temp est null ou btmp est
Vous devez vous connecter pour publier un commentaire.
btmp est null.
Il n'y a aucun moyen que par l'utilisation de le code joint.Ensuite, la valeur de btmp serait rien. Mais c'est null!
Si vous voulez cloner Bitmap l'utilisation créer méthode ou tout autre de ce genre.
"oui, btmp est null"
Mais, essayez-vous à l'appel de la méthode invoke sur elle:
btmp.copyPixelsFromBuffer(buffer_temp); //<- here
Qui ne va pas au travail. Vous devez les initialiser
btmp
avant de l'utiliser.Mise à jour:
Init comme ceci: