Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

OnClick Listener auf einem ImageView

Das Thema "OnClick Listener auf einem ImageView" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 24.01.2012, 14:02   #1 (permalink)
Neuer Benutzer

Registriert seit: 24.01.2012
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard OnClick Listener auf einem ImageView

Hallo Forum,

ich bin neu hier und hoffe meine Frage in der richtigen Kategorie gestellt zu haben.
Ich habe Eine Klasse CameraView, welche View implementiert. Mittels der onDraw Methode zeichne ich alle Objekte auf dem Canvas. Innerhalb der OnDraw Methode rufe ich eine Draw Methode einer eigenen Klasse HUD auf. Diese malt ein kleines HUD für ein Spiel. Das Zeichnen an sich funktinoiert auch prima, allerdings funktionieren die ActionListener der ImageViews der Klasse HUD nicht. Ich habe keine Ahnung woran das liegen könnte. Hier mal die Codeschnippsel der entsprechenden Klassen:

Code:
public class CameraView extends View implements SensorEventListener{ ..... .....  @Override     protected void onDraw(Canvas canvas) {                   mCanvas = canvas;              //update GameTimer and Items         hud.updateGameTimer();          //draw level based on camera coordinates         canvas.drawBitmap(background, camX, camY, null);          //Draw the HUD         hud.draw(canvas);            // and make sure to redraw asap         invalidate();     } }
Code:
public class Hud{     public TextElement gameTimer;     CameraView mCameraView;     private HashMap<Integer, Item> mItems = new HashMap<Integer, Item>();     private Integer mScreenWidth;     private Integer mScreenHeight;     //private ImageView imgView; private HashMap<Integer, ImageView> imgViews = new HashMap<Integer, ImageView>();     private LinearLayout ll;     private Integer n;      public Hud(CameraView cameraView){         mCameraView = cameraView;          mScreenWidth = mCameraView.screenWidth;         mScreenHeight = mCameraView.screenHeight;          //Get an instance of the GameTimer         gameTimer = new TextElement("GameTimer", mScreenWidth/2, 25);          //imgView = new ImageView(mCameraView.getContext()); //We use a layout to contain the buttons (or any view)         ll = new LinearLayout(mCameraView.getContext());         ll.setOrientation(LinearLayout.HORIZONTAL);     }      public void updateGameTimer() {          //update GameTimer long millis = System.currentTimeMillis() - mCameraView.startTime  ;         int seconds = (int) (millis / 1000);         int minutes = seconds / 60;         seconds     = seconds % 60;         gameTimer.setText(String.format("%d: %02d", minutes, seconds));      }      public void updateItems() {         mItems = Simulation.items;          ll = new LinearLayout(mCameraView.getContext());                  for (Item item : mItems.values()) {                          Integer id = item.getIdentifier();             ImageView imgView = new ImageView(mCameraView.getContext());             imgView.setImageBitmap(item.getImage());             imgView.setId(id);              //We set the layout parameters             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                     LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);              //SET THE MARGIN HERE             layoutParams.setMargins(30 , mScreenHeight - item.getImage().getHeight() - 20, 0, 0);             ImageView.OnClickListener listener = new ImageView.OnClickListener()              {                  public void onClick(View v)                 {                     Simulation.items.get(v.getId()).useItem();                     Simulation.items.remove(v.getId());                     imgViews.remove(v.getId());                     updateItems();                                       }             };                                  imgView.setOnClickListener(listener);                          //Add it to our linear layout             ll.addView(imgView, layoutParams);              //Measure and layout the linear layout before drawing it             ll.measure(MeasureSpec.getSize(ll.getMeasuredWidth()), MeasureSpec.getSize(ll.getMeasuredHeight()));             ll.layout(0, 0, MeasureSpec.getSize(imgView.getMeasuredWidth()), MeasureSpec.getSize(imgView.getMeasuredHeight()));              imgViews.put(item.getIdentifier(), imgView);                      }      }      public void draw(Canvas canvas) {         //GameTimer         gameTimer.Draw(canvas);                           //Finally draw the linear layout on the canvas            ll.draw(canvas);         if (imgViews.containsKey(1)) {                          //imgViews.get(1).performClick();         }              }  }
Wenn ich auf die angezeigten ItemBilder clicke passiert nichts. Lasse ich jedoch das Programm auf eines der Icons klicken (mittels imgViews.get(1).performClick(); wird zumindest mal die korrekte Aktion ausgeführt. Die Listener scheinen also zu gehen. Aber irgendwie "dringt" der Klick nicht zu dem ImageView durch :-/

Ich hoffe ihr könnte mir helfen!

Vielen Dank schonmal!
MfG, der CvD

Edit: Wie kann ich denn den Code hier im Forum gescheit darstellen?
cda ist offline   Mit Zitat antworten
Alt 24.01.2012, 14:37   #2 (permalink)
Neuer Benutzer

Registriert seit: 24.01.2012
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: OnClick Listener auf einem ImageView

Nun ist der Sourcecode als TXT im Anhang
Angehängte Dateien
Dateityp: txt CameraView.txt (430 Bytes, 11x aufgerufen)
Dateityp: txt HUD.txt (2,8 KB, 7x aufgerufen)
cda ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Liste einer Listactivity mit einem "onClick" versehen by_homer Android App Entwicklung 18 12.01.2012 16:43
Mit OnClick Button auf webseite gelangen windwusel Android App Entwicklung 5 09.01.2012 21:17
Mittelpunkt eines Bitmaps auf einem ImageView mister-viper Android App Entwicklung 2 12.11.2011 10:35
onClick ImageView highlighten lassen Tschakle Android App Entwicklung 3 08.04.2011 11:48
Canvas in Imageview und onTouch bzw. onclick missG Android App Entwicklung 1 02.11.2010 18:16




Du liest gerade: "OnClick Listener auf einem ImageView" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.