ImageView Abfragen nach dem Bild

  • Antworten:3
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 285

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

Diskutiere mit!
Beste Antwort
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.784

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.☺

Download Samsung Firmware Tool

Meine Wunschliste

Telegram News Feed

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.080

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?
Diskutiere mit!
Beste Antwort
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.784

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.☺

Download Samsung Firmware Tool

Meine Wunschliste

Telegram News Feed

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 285

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?
Diskutiere mit!
Empfohlene Artikel