ImageView Abfragen nach dem Bild

  • Antworten:3
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 609

18.03.2020, 15:55:26 via Website

Hallo zusammen

Mit

myImageView.setImageResource(R.drawable.sweet_64_strich);

kann ich in einer ImageView das Bild setzen. Ich möchte aber je nachdem welches Bild drin ist ein anderes Bild setzen. Dazu muss ich abfragen welches Bild gezeigt wird.

package ch.robbisoft.nimapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ImageView img_einseins;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    img_einseins = findViewById(R.id.img_eins_eins);
    img_einseins.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    ImageView objekt;
    objekt = (ImageView) view;
    objekt.setImageResource(R.drawable.sweet_64_strich);
}

}

Wie kann ich in einer ImageView abfragen welches Bild angezeigt wird?

Gruss Renato

Kommentieren
Beste Antwort
Ludy
  • Admin
  • Forum-Beiträge: 7.958

18.03.2020, 18:46:41 via Website

Hallo Robbiani Renato,

Bitmap imgEinseinsBitMap = ((BitmapDrawable) img_einseins.getDrawable()).getBitmap();
Drawable sweet64Strich = getResources().getDrawable(R.drawable.sweet_64_strich);
Bitmap sweet64StrichBitmap = ((BitmapDrawable) sweet64Strich).getBitmap();
if (imgEinseinsBitMap.sameAs(sweet64StrichBitmap)) {
    Toast.makeText(getBaseContext(), "Du hast das Bild verglichen, Toast.LENGTH_LONG).show();
}

— geändert am 18.03.2020, 18:47:07

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

18.03.2020, 18:14:20 via Website

Hallo
Mit „getDrawable()“ bekommst du das Drawable.
Das ist aber nicht die ID deiner Ressource. Die wirst du so auch nicht bekommen.

Du weist doch welche Ressource (ID) du dem Imageview übergibst. Oder auch gleich im Layout mit gibst.
Speicher dir die doch in einer Variablen.
Und benutze die um zu wissen welche ID (Ressource) gerade in deinem Imageview angezeigt wird.

Auch eine Möglichkeit ist dem Imageview einen Tag mitzugeben.
Und diesen wieder auszulesen.

imageView.setDrawableResource(R.drawable.foo);
imageView.setTag(R.drawable.foo);

Hilfreich?
Kommentieren
Beste Antwort
Ludy
  • Admin
  • Forum-Beiträge: 7.958

18.03.2020, 18:46:41 via Website

Hallo Robbiani Renato,

Bitmap imgEinseinsBitMap = ((BitmapDrawable) img_einseins.getDrawable()).getBitmap();
Drawable sweet64Strich = getResources().getDrawable(R.drawable.sweet_64_strich);
Bitmap sweet64StrichBitmap = ((BitmapDrawable) sweet64Strich).getBitmap();
if (imgEinseinsBitMap.sameAs(sweet64StrichBitmap)) {
    Toast.makeText(getBaseContext(), "Du hast das Bild verglichen, Toast.LENGTH_LONG).show();
}

— geändert am 18.03.2020, 18:47:07

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 609

20.03.2020, 17:49:30 via Website

Ciao Ludy

Genau so geht es. Herzlichen Dank für deine Hilfe.

Übrigens auch für dich nur Renato.

Gruss Renato

Hilfreich?
Kommentieren