2015-09-05 11 views
0

По какой-то причине я обнаружил сбой, который не имеет никакого смысла и появляется только на Galaxy Note 4, как я думаю сейчас. Только тестовые устройства у меня есть это Nexus 7 (2012), синяя стека бета и Примечание 4. Эта ошибка только появляется на банкноте 4. Вот код рисования:Случайное мигание, происходящее только на галактике Примечание 4

if(!started){ 
      continue; 
     } 
     h = getHolder(); 
     if (!h.getSurface().isValid()){ 
      continue; 
     } 
     Canvas c = h.lockCanvas(); 
     c.drawRect(0, 0, this.getWidth(), this.getHeight(), white); 

     //draw walls 
     for(int i=0;i<walls.length;i++){ 
      c.drawRect(walls[i].x, walls[i].y, walls[i].bottom, walls[i].right, red); 
     } 

     //draw portals 
     for(int i=0;i<portals.length;i++){ 
      Log.d("S", i+""); 
      Log.d("S", portalimages[i].toString()); 
      c.drawBitmap(portalimages[i], portals[i].x1, portals[i].y1, null); 
      c.drawBitmap(portalimages[i], portals[i].x2, portals[i].y2, null); 
     } 

     //draw startlocations 
     for(int i=0;i<startlocations.length;i++){ 
      c.drawBitmap(player, startlocations[i].x, startlocations[i].y, null); 
     } 

     //draw checkpoints 
     for(int i=0;i<checkpoints.length;i++){ 
      c.drawRect(checkpoints[i].x, checkpoints[i].y, checkpoints[i].x+this.getHeight()/18, checkpoints[i].y+this.getHeight()/18, blue); 
     } 

     //draw middle line 
     c.drawRect(0, getHeight()/2-getHeight()/80, getWidth(), getHeight()/2+getHeight()/80, black); 

     menu.draw(c); 

     h.unlockCanvasAndPost(c); 

глюк случается однажды мой onClick. он просто добавляет новую startlocation:

startlocations[location] = new Coord(lastx, lasty); 
if(location>0){ 
    location = 0; 
}else{ 
    location++; 
} 
break; 

Примечание: startlocations является установка с startlocations = new Coord[2];

Извините за качество видео. Примечание 4 - это мой папа, поэтому мне пришлось отправить его через службу обмена сообщениями, и он сжал его, а затем YouTube сжал его больше. Затем вырывается следующее: https://www.youtube.com/watch?v=Ig9mflYBPaI

Ничего не изменится при щелчке по кнопке начала старта игрока. Я постараюсь больше поработать над этим, но я решил опубликовать его здесь, если я что-то пропустил. Благодаря!

Edit:

теперь я знаю, что эта проблема уходит, когда вы не имеете эту строку: c.drawBitmap(player, startlocations[i].x, startlocations[i].y, null);, которая не имеет никакого смысла. Нет ошибки, и он загружается с помощью этого кода. BitmapFactory.decodeResource(getResources(), R.drawable.portal);, а затем отрегулирован с Bitmap.createScaledBitmap(player, this.getHeight()/18, this.getHeight()/18, true);

ответ

0

Я нашел ответ, и это не имеет никакого смысла. По какой-то причине, только в этом классе изображение должно обладать прозрачностью или же глюками. Позже я рисую другие непрозрачные изображения. Это не имеет никакого смысла, но это работает. скажите, пожалуйста, если вы знаете причину, почему это происходит.

Я предполагаю, что в другом классе я использовал основной пакет, но в этом классе это другой пакет. Это может быть причиной того, что это только этот класс (или метод). Мне нужно будет провести больше испытаний.

Спасибо.