2015-02-24 7 views
0

Я пытаюсь нарисовать изображение в функции краски моего компонента. Он очень хорошо работает в эмуляторе, но после компиляции для реальной функции устройства drawImage (Image img, int x, int y, int w, int h) не работает. Например:Fucntion drawImage не работает на реальном устройстве

Emulator:

Emulator screenshot

Real устройство:

Real device screenshot

Для этого примера был использован этот код:

g.setColor(0x1E7FCA); 
g.fillRect(getX(), getY(), getWidth(), getHeight()); 
g.setColor(0xF91631); 
g.fillRect(getX() + mapX, getY() + mapY, mapWidth, mapHeight); 
g.drawImage(map, getX() + mapX, getY() + mapY, mapWidth, mapHeight); 
g.drawString(
Integer.toString(getX() + mapX)+";"+ 
Integer.toString(getY() + mapY)+"-"+ 
Integer.toString(mapWidth)+";"+ 
Integer.toString(mapHeight)+";", 0, 0); 

ответ

0

Насколько велика изображение физически?

Это очень большой (с точки зрения ширины/высоты)?

Если это возможно, вы можете пересечь границу текстуры изображения графического процессора и не иметь достаточного количества ОЗУ GPU для рисования изображения.

+0

Да. Это изображение довольно большое ... 4738 × 3133 – ftp27

+0

, но изображение было изменено размерами по значению mapWidth и mapHeight. – ftp27

+0

Его нет. Исходное изображение по-прежнему ОГРОМНОЕ, вы просто рисуете его в меньшем месте. Это означает, что графический процессор должен загружать очень большое изображение (намного больше, чем экран, и масштабировать его динамически. Вы можете масштабировать файл изображения с помощью ImageIO API, но я предполагаю, что это не то, что вы хотите. –

Смежные вопросы