android - How to get the screen size? -


i trying set sprite image background , didn't success set image size screen size.

i'm trying this:

public class game extends surfaceview implements runnable {     private surfaceholder holder;     private boolean isrunning = false;     private thread gamethread;     private sprite s;     private int screenwidth;     private int screenheight;     canvas canvas;     //  private sprite[] sprites;      private final static int max_fps = 40; //desired fps     private final static int frame_period = 1000 / max_fps; // frame period      public game(context context) {         super(context);          holder = getholder();         holder.addcallback(new surfaceholder.callback() {             @override             public void surfacecreated(surfaceholder holder) {             }              @override             public void surfacechanged(surfaceholder holder, int format, int width, int height) {                 screenwidth = width;                 screenheight = height;             }              @override             public void surfacedestroyed(surfaceholder holder) {             }         });          //====== not working         //  display display = ((activity)context).getwindowmanager().getdefaultdisplay();         //   int swidth = display.getwidth();         // int sheight = display.getheight();          //====== not working         //   displaymetrics dm = new displaymetrics();         //  ((activity)context).getwindowmanager().getdefaultdisplay().getmetrics(dm);         // int swidth = dm.widthpixels;         // int sheight = dm.heightpixels;          //====== not working         // screenheight=canvas.getheight();         // screenwidth=canvas.getwidth();          s=new sprite(0, 0, bitmapfactory.decoderesource(this.getresources(), r.mipmap.back));     }      /**      * start or resume game.      */     public void resume() {         isrunning = true;         gamethread = new thread(this);         gamethread.start();     }      /**      * pause game loop      */     public void pause() {         isrunning = false;         boolean retry = true;         while (retry) {             try {                 gamethread.join();                 retry = false;             } catch (interruptedexception e) {                 // try again shutting down thread             }         }     }      class sprite {         int x;         int y;         int directionx = 1;         int directiony = 1;         int speed = 10;         int color = 0;         bitmap image;          public sprite(int x, int y) {             this.x = x;             this.y = y;         }          public sprite(int x, int y, bitmap image) {             this(x, y);             this.image = image;         }          public sprite(int x, int y, bitmap image, int color) {             this(x, y, image);             this.color = color;         }     }      protected void step()     {         //blablabla     }      protected void render(canvas canvas) {         canvas.drawcolor(color.black);         paint p = new paint();          canvas.drawbitmap(s.image,s.x,s.y,p);      }      @override     public void run() {         while(isrunning) {             // need make sure surface ready             if (! holder.getsurface().isvalid()) {                 continue;             }             long started = system.currenttimemillis();              // update             step();             // draw             canvas = holder.lockcanvas();              if (canvas != null) {                 render(canvas);                 holder.unlockcanvasandpost(canvas);             }              float deltatime = (system.currenttimemillis() - started);             int sleeptime = (int) (frame_period - deltatime);             if (sleeptime > 0) {                 try {                     gamethread.sleep(sleeptime);                 }                 catch (interruptedexception e) {                 }             }             while (sleeptime < 0) {                 step();                 sleeptime += frame_period;             }         }     } } 

this options doesn't work:

//====== not working //  display display = ((activity)context).getwindowmanager().getdefaultdisplay(); //   int swidth = display.getwidth(); // int sheight = display.getheight();  //====== not working //   displaymetrics dm = new displaymetrics(); //  ((activity)context).getwindowmanager().getdefaultdisplay().getmetrics(dm); // int swidth = dm.widthpixels; // int sheight = dm.heightpixels;  //====== not working // screenheight=canvas.getheight(); // screenwidth=canvas.getwidth(); 

so how can canvas or current screen size? , set sprite.image full screen ?

try size in pixels,

display display = getwindowmanager().getdefaultdisplay(); point size = new point(); display.getsize(size); int width = size.x; int height = size.y; 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -