| |||||||
Das Thema "OnClick Listener auf einem ImageView" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 24.01.2012
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| 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(); } } } 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? |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |