attach event handler to bitmap object

Put problem concerning Views, Layouts and other XML-Resources (like AndroidManifest) here.

attach event handler to bitmap object

Postby dreamdelerium » Tue Jan 19, 2010 3:49 am

hi everyone.
Im trying to add an event listener to an object thats drawn to canvas but nothing seems to be working. heres what i got:

...
public class board extends View{
card1 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.testGame"));
//theres 10 cards: card1, card2...card10
}
....
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);


// make the entire canvas white
paint.setColor(Color.BLACK);
canvas.drawPaint(paint);
card1.setX(5);
card1.setY(10);
canvas.drawBitmap(card1.getBitmap(), card1.getX(), card1.getY(),null);
}

how do i attach the event handler to each card object

thanks for the help
dreamdelerium
Developer
Developer
 
Posts: 30
Joined: Fri Jan 01, 2010 11:19 pm

Top

Postby nithin.warier » Tue Jan 19, 2010 12:58 pm

whichever listener you want for the view, just implements that and use it. For example,

public class board extends View implements View.OnClickListener

used for listening to click events on the View.
smartandroidians.blogspot.com
nithin.warier
Experienced Developer
Experienced Developer
 
Posts: 87
Joined: Thu Feb 28, 2008 12:05 pm
Location: Malappuram Kerala India

sorry

Postby dreamdelerium » Tue Jan 19, 2010 7:47 pm

thanks for the help but i still cant seem to get it working. I get no errors when the program runs but nothing happens either (when the event is fired i try to print a line to the screen). I dont just want an event to fire when someone clicks randomly on a screen. i just want an event to fire when some clicks on one of the nine images being displayed (and then to return the name of the object that was clicked on) Thanks for any assistance.



let me post my full code:

Main.java:
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. package com.Main;
  3.  
  4.  
  5.  
  6.  
  7.  
  8. import android.app.Activity;
  9.  
  10. import android.os.Bundle;
  11.  
  12.  
  13.  
  14. public class Main extends Activity {
  15.  
  16. board Board;
  17.  
  18.  
  19.  
  20. @Override
  21.  
  22. public void onCreate(Bundle savedInstanceState) {
  23.  
  24. super.onCreate(savedInstanceState);
  25.  
  26. Board = new board(this);
  27.  
  28. setContentView(Board);
  29.  
  30. Bundle bun = getIntent().getExtras();
  31.  
  32. }
  33.  
  34.  
  35.  
  36.  
  37.  
  38. }
  39.  
  40.  
Parsed in 0.032 seconds, using GeSHi 1.0.8.4


board.java:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. package com.Main;
  3.  
  4.  
  5.  
  6. import java.util.ArrayList;
  7.  
  8. import java.util.Collections;
  9.  
  10. import android.content.Context;
  11.  
  12. import android.graphics.Canvas;
  13.  
  14. import android.graphics.Color;
  15.  
  16. import android.graphics.Paint;
  17.  
  18. import android.view.View;
  19.  
  20.  
  21.  
  22. public class board extends View{
  23.  
  24.         private cards card1, card2, card3, card4, card5,card6,card7,card8,card9;
  25.  
  26.         private int cardCount = 81;
  27.  
  28.         private int cardsOnTable = 9;
  29.  
  30.         public board(Context context){
  31.  
  32.         super(context);
  33.  
  34.         ArrayList MyCards =  shuffleCards();
  35.  
  36.  
  37.  
  38.         card1 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  39.  
  40.         card1.setName((String)MyCards.get(81-cardCount));
  41.  
  42.         cardCount=cardCount-1;
  43.  
  44.  
  45.  
  46.         card2 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  47.  
  48.         card2.setName((String)MyCards.get(81-cardCount));
  49.  
  50.         cardCount=cardCount-1;
  51.  
  52.        
  53.  
  54.         card3 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  55.  
  56.         card3.setName((String)MyCards.get(81-cardCount));
  57.  
  58.         cardCount=cardCount-1;
  59.  
  60.        
  61.  
  62.         card4 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  63.  
  64.         card4.setName((String)MyCards.get(81-cardCount));
  65.  
  66.         cardCount=cardCount-1;
  67.  
  68.        
  69.  
  70.         card5 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  71.  
  72.         card5.setName((String)MyCards.get(81-cardCount));
  73.  
  74.         cardCount=cardCount-1;
  75.  
  76.        
  77.  
  78.         card6 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  79.  
  80.         card6.setName((String)MyCards.get(81-cardCount));
  81.  
  82.         cardCount=cardCount-1;
  83.  
  84.        
  85.  
  86.         card7 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  87.  
  88.         card7.setName((String)MyCards.get(81-cardCount));
  89.  
  90.         cardCount=cardCount-1;
  91.  
  92.        
  93.  
  94.         card8 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  95.  
  96.         card8.setName((String)MyCards.get(81-cardCount));
  97.  
  98.         cardCount=cardCount-1;
  99.  
  100.        
  101.  
  102.         card9 = new cards(context,getResources().getIdentifier((String)MyCards.get(81-cardCount), "drawable", "com.Main"));
  103.  
  104.         card9.setName((String)MyCards.get(81-cardCount));
  105.  
  106.         cardCount=cardCount-1;
  107.  
  108. }
  109.  
  110.        
  111.  
  112.         @Override protected void onDraw(Canvas canvas) {
  113.  
  114.         super.onDraw(canvas);
  115.  
  116.  
  117.  
  118.         Paint paint = new Paint();
  119.  
  120.         paint.setStyle(Paint.Style.FILL);
  121.  
  122.  
  123.  
  124.  
  125.  
  126.         // make the entire canvas white
  127.  
  128.         paint.setColor(Color.BLACK);
  129.  
  130.         canvas.drawPaint(paint);
  131.  
  132.         card1.setX(5);
  133.  
  134.         card1.setY(10);
  135.  
  136.        
  137.  
  138.  
  139.  
  140.         card2.setX(160);
  141.  
  142.         card2.setY(10);
  143.  
  144.  
  145.  
  146.         card3.setX(5);
  147.  
  148.         card3.setY(91);
  149.  
  150.  
  151.  
  152.         card4.setX(160);
  153.  
  154.         card4.setY(91);
  155.  
  156.  
  157.  
  158.         card5.setX(5);
  159.  
  160.         card5.setY(172);
  161.  
  162.  
  163.  
  164.         card6.setX(160);
  165.  
  166.         card6.setY(172);
  167.  
  168.  
  169.  
  170.         card7.setX(5);
  171.  
  172.         card7.setY(253);
  173.  
  174.  
  175.  
  176.         card8.setX(160);
  177.  
  178.         card8.setY(253);
  179.  
  180.  
  181.  
  182.         card9.setX(5);
  183.  
  184.         card9.setY(334);
  185.  
  186.  
  187.  
  188.         // draw some text using STROKE style
  189.  
  190.         paint.setStyle(Paint.Style.STROKE);
  191.  
  192.         paint.setStrokeWidth(1);
  193.  
  194.         paint.setColor(Color.BLACK);
  195.  
  196.         paint.setTextSize(30);
  197.  
  198.         paint.setAntiAlias(true);
  199.  
  200.  
  201.  
  202.         canvas.drawBitmap(card1.getBitmap(), card1.getX(), card1.getY(),null);
  203.  
  204.         canvas.drawBitmap(card2.getBitmap(), card2.getX(), card2.getY(),null);
  205.  
  206.         canvas.drawBitmap(card3.getBitmap(), card3.getX(), card3.getY(),null);
  207.  
  208.         canvas.drawBitmap(card4.getBitmap(), card4.getX(), card4.getY(),null);
  209.  
  210.         canvas.drawBitmap(card5.getBitmap(), card5.getX(), card5.getY(),null);
  211.  
  212.         canvas.drawBitmap(card6.getBitmap(), card6.getX(), card6.getY(),null);
  213.  
  214.         canvas.drawBitmap(card7.getBitmap(), card7.getX(), card7.getY(),null);
  215.  
  216.         canvas.drawBitmap(card8.getBitmap(), card8.getX(), card8.getY(),null);
  217.  
  218.         canvas.drawBitmap(card9.getBitmap(), card9.getX(), card9.getY(),null);
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.         invalidate();
  227.  
  228.  
  229.  
  230.         }
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.                 static ArrayList shuffleCards() {
  239.  
  240.                 //shuffles my card array
  241.  
  242.                // Collections.shuffle(myCardArray);
  243.  
  244.         ArrayList myCardArray = new ArrayList();
  245.  
  246.         myCardArray.add("gsf1");
  247.  
  248.         myCardArray.add("gse1");
  249.  
  250.         myCardArray.add("gsh1");
  251.  
  252.         myCardArray.add("gcf1");
  253.  
  254.         myCardArray.add("gce1");
  255.  
  256.         myCardArray.add("gch1");
  257.  
  258.         myCardArray.add("gtf1");
  259.  
  260.         myCardArray.add("gte1");
  261.  
  262.         myCardArray.add("gth1");
  263.  
  264.         myCardArray.add("bsf1");
  265.  
  266.         myCardArray.add("bse1");
  267.  
  268.         myCardArray.add("bsh1");
  269.  
  270.         myCardArray.add("bcf1");
  271.  
  272.         myCardArray.add("bce1");
  273.  
  274.         myCardArray.add("bch1");
  275.  
  276.         myCardArray.add("btf1");
  277.  
  278.         myCardArray.add("bte1");
  279.  
  280.         myCardArray.add("bth1");
  281.  
  282.         myCardArray.add("rsf1");
  283.  
  284.         myCardArray.add("rse1");
  285.  
  286.         myCardArray.add("rsh1");
  287.  
  288.         myCardArray.add("rcf1");
  289.  
  290.         myCardArray.add("rce1");
  291.  
  292.         myCardArray.add("rch1");
  293.  
  294.         myCardArray.add("rtf1");
  295.  
  296.         myCardArray.add("rte1");
  297.  
  298.         myCardArray.add("rth1");
  299.  
  300.         myCardArray.add("gsf2");
  301.  
  302.         myCardArray.add("gse2");
  303.  
  304.         myCardArray.add("gsh2");
  305.  
  306.         myCardArray.add("gcf2");
  307.  
  308.         myCardArray.add("gce2");
  309.  
  310.         myCardArray.add("gch2");
  311.  
  312.         myCardArray.add("gtf2");
  313.  
  314.         myCardArray.add("gte2");
  315.  
  316.         myCardArray.add("gth2");
  317.  
  318.         myCardArray.add("bsf2");
  319.  
  320.         myCardArray.add("bse2");
  321.  
  322.         myCardArray.add("bsh2");
  323.  
  324.         myCardArray.add("bcf2");
  325.  
  326.         myCardArray.add("bce2");
  327.  
  328.         myCardArray.add("bch2");
  329.  
  330.         myCardArray.add("btf2");
  331.  
  332.         myCardArray.add("bte2");
  333.  
  334.         myCardArray.add("bth2");
  335.  
  336.         myCardArray.add("rsf2");
  337.  
  338.         myCardArray.add("rse2");
  339.  
  340.         myCardArray.add("rsh2");
  341.  
  342.         myCardArray.add("rcf2");
  343.  
  344.         myCardArray.add("rce2");
  345.  
  346.         myCardArray.add("rch2");
  347.  
  348.         myCardArray.add("rtf2");
  349.  
  350.         myCardArray.add("rte2");
  351.  
  352.         myCardArray.add("rth2");
  353.  
  354.         myCardArray.add("gsf3");
  355.  
  356.         myCardArray.add("gse3");
  357.  
  358.         myCardArray.add("gsh3");
  359.  
  360.         myCardArray.add("gcf3");
  361.  
  362.         myCardArray.add("gce3");
  363.  
  364.         myCardArray.add("gch3");
  365.  
  366.         myCardArray.add("gtf3");
  367.  
  368.         myCardArray.add("gte3");
  369.  
  370.         myCardArray.add("gth3");
  371.  
  372.         myCardArray.add("bsf3");
  373.  
  374.         myCardArray.add("bse3");
  375.  
  376.         myCardArray.add("bsh3");
  377.  
  378.         myCardArray.add("bcf3");
  379.  
  380.         myCardArray.add("bce3");
  381.  
  382.         myCardArray.add("bch3");
  383.  
  384.         myCardArray.add("btf3");
  385.  
  386.         myCardArray.add("bte3");
  387.  
  388.         myCardArray.add("bth3");
  389.  
  390.         myCardArray.add("rsf3");
  391.  
  392.         myCardArray.add("rse3");
  393.  
  394.         myCardArray.add("rsh3");
  395.  
  396.         myCardArray.add("rcf3");
  397.  
  398.         myCardArray.add("rce3");
  399.  
  400.         myCardArray.add("rch3");
  401.  
  402.         myCardArray.add("rtf3");
  403.  
  404.         myCardArray.add("rte3");
  405.  
  406.         myCardArray.add("rth3");
  407.  
  408.  
  409.  
  410.         Collections.shuffle(myCardArray);
  411.  
  412.         return (myCardArray);
  413.  
  414.  
  415.  
  416.                 }
  417.  
  418. }
  419.  
  420.  
Parsed in 0.065 seconds, using GeSHi 1.0.8.4


cards.java:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. package com.Main;
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. import android.content.Context;
  11.  
  12. import android.graphics.Bitmap;
  13.  
  14. import android.graphics.BitmapFactory;
  15.  
  16.  
  17.  
  18. public class cards {
  19.  
  20.  private Bitmap img; // the image of the ball
  21.  
  22.  private int coordX = 0; // the x coordinate at the canvas
  23.  
  24.  private int coordY = 0; // the y coordinate at the canvas
  25.  
  26.  private int sizeH = 100; // the x coordinate at the canvas
  27.  
  28.  private int sizeW = 150; // the y coordinate at the canvas
  29.  
  30.  private String cardName = "";
  31.  
  32.  
  33.  
  34.  private int id; // gives every ball his own id, for now not necessary
  35.  
  36.  private static int count = 1;
  37.  
  38.  private boolean goRight = true;
  39.  
  40.  private boolean goDown = true;
  41.  
  42.  
  43.  
  44.         public cards(Context context, int drawable) {
  45.  
  46.  
  47.  
  48.                 BitmapFactory.Options opts = new BitmapFactory.Options();
  49.  
  50.         opts.inJustDecodeBounds = true;
  51.  
  52.         img = BitmapFactory.decodeResource(context.getResources(), drawable);
  53.  
  54.         id=count;
  55.  
  56.                 count++;
  57.  
  58.  
  59.  
  60.         }
  61.  
  62.        
  63.  
  64.         public static int getCount() {
  65.  
  66.                 return count;
  67.  
  68.         }
  69.  
  70.        
  71.  
  72.         void setX(int newValue) {
  73.  
  74.         coordX = newValue;
  75.  
  76.     }
  77.  
  78.        
  79.  
  80.         public int getX() {
  81.  
  82.                 return coordX;
  83.  
  84.         }
  85.  
  86.         public int getH() {
  87.  
  88.                 return sizeH;
  89.  
  90.         }
  91.  
  92.         public int getW() {
  93.  
  94.                 return sizeW;
  95.  
  96.         }
  97.  
  98.         void setY(int newValue) {
  99.  
  100.         coordY = newValue;
  101.  
  102.    }
  103.  
  104.        
  105.  
  106.         void setW(int newValue) {
  107.  
  108.         sizeW = newValue;
  109.  
  110.    }
  111.  
  112.        
  113.  
  114.         void setH(int newValue) {
  115.  
  116.         sizeH = newValue;
  117.  
  118.    }
  119.  
  120.        
  121.  
  122.         public int getY() {
  123.  
  124.                 return coordY;
  125.  
  126.         }
  127.  
  128.        
  129.  
  130.         void setName(String newValue) {
  131.  
  132.         cardName = newValue;
  133.  
  134.    }
  135.  
  136.        
  137.  
  138.         public String getName() {
  139.  
  140.                 return cardName;
  141.  
  142.         }
  143.  
  144.        
  145.  
  146.         public int getID() {
  147.  
  148.                 return id;
  149.  
  150.         }
  151.  
  152.        
  153.  
  154.         public Bitmap getBitmap() {
  155.  
  156.                 return img;
  157.  
  158.         }
  159.  
  160.        
  161.  
  162.        
  163.  
  164. }
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
Parsed in 0.040 seconds, using GeSHi 1.0.8.4
dreamdelerium
Developer
Developer
 
Posts: 30
Joined: Fri Jan 01, 2010 11:19 pm

Top

Return to View, Layout & Resource Problems

Who is online

Users browsing this forum: No registered users and 11 guests