9 Stimmen

Aktuelles Bild aus ImageView löschen/entfernen?

Ich möchte löschen/entfernen oder löschen Bild aus imageView jedes Mal, wenn Benutzer erneut klicken, um ein anderes Bild auf die imageView zu setzen. ich bin immer OutOfMemoryError: Bitmap-Größe überschreitet VM-Budget (Heap Size=7239KB, Allocated=2769KB, Bitmap Size=8748KB) Hier ist mein Code:

ImageView imageView;
private static final int SELECT_PICTURE = 1;
private String selectedImagePath;
Bitmap yourSelectedImage;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

}

@Override
protected void onResume() {
    super.onResume();
    imageView = (ImageView) findViewById(R.id.imageView);

            ((ImageView) findViewById(R.id.imageView))
    .setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

            goToGallery();
        }
    });

}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            /*Toast.makeText(getBaseContext(), "" + selectedImagePath, 1000)
                    .show();
            *///editText2.setText(selectedImagePath);

            // Convert file path into bitmap image using below line.
            yourSelectedImage = BitmapFactory
                    .decodeFile(selectedImagePath);

            // put bitmapimage in your imageview
            imageView.setImageBitmap(yourSelectedImage);

        }
    }
}

public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
private void goToGallery()
{

    // in onCreate or any event where your want the user to
    // select a file
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(
            Intent.createChooser(intent, "Select Picture"),
            SELECT_PICTURE);

}

28voto

Das Setzen einer Ressource auf 0 hat bei mir nicht funktioniert. Das Folgende hat jedoch funktioniert:

imageView.setImageBitmap(null);

1voto

njzk2 Punkte 38000

Die spezielle Ressourcenkennung '0' verwenden. Dies ist keine gültige Ressourcenkennung, daher wird das Bild ausgeblendet.

1voto

pallavi Punkte 432
image.setImageDrawable(null);

wird das Bild in der Bildansicht gelöscht.

0voto

Pete Houston Punkte 14723

Wenn Sie ein anderes Bild auf das aktuelle ImageView wird der vorherige nicht mehr für die ImageView . Sie brauchen also keine zusätzliche Arbeit zu leisten.

0 Stimmen

Hey sein wahres, aber wenn das Bild nicht in der anderen Ansicht kommt, was kann ich dann tun? mein Problem ist in imageview erste Bild gesetzt ist, nach dem Drücken der nächsten Taste das gleiche Bild in der anderen image.so i wanaa klar, dass erste image.plz helfen

0voto

Ashraf Alshahawy Punkte 1079
viewToUse.setImageResource(android.R.color.transparent);
  • Ich denke, dass die Verwendung von setImageResource mit einem Farbbezeichner zu Absturzproblemen unter Android 2.2.1 führt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X