Здравствуйте товарищи программисты!
Во время рождественских каникул я начал работать над приложением для кроссвордов и тщательно протестировал его на своем Samsung Galaxy S2, так как это было единственное устройство, которое у меня было на тот момент. Теперь, вернувшись на работу, у меня также есть Acer Iconia и Kindle Fire HD для работы. Проблема в том, что мое приложение выглядит полностью размытым на обоих планшетах.
В моем приложении не используются готовые изображения, все рисуется из рисунков xml (в основном градиенты). Хотя в этом нет необходимости, я скопировал все градиенты xml во все папки dpi (ldpi, mdpi, hdpi, xhdpi). Я также явно добавил тег support-screens в манифест, с smallscreens на xlargescreens и anydensity. Ничего не сработало.
Моя процедура рисования выглядит так:
canvas.save();
canvas.translate(mPosX, mPosY);
canvas.scale(zoom, zoom,centerx,centery);
for(int x=0;x<mapsize;x++)
for(int y=0;y<mapsize;y++) {
this.gc.setBounds(cells[x][y]);
this.gc.draw(canvas);
}
canvas.restore();
При запуске я узнаю наименьшую сторону устройства (800x480 = 480), делю ее на количество ячеек в моем кроссворде (15), поэтому я получаю размер ячейки 32 для S2. Я просто рисую тайлы 15x15 размером 32x32 каждый. На моем мобильном телефоне это выглядит четким, даже если я увеличу изображение в 15 раз, текст и графика останутся четкими. Не на планшетах, графика смазана с самого начала и становится хуже по мере увеличения. На Acer Iconia стрелки даже не рисуются, они все загромождены в верхнем левом углу, хотя Logcat говорит, что смещение вычисляется правильно, они просто больше нигде не рисуются. Я понял одну вещь: когда я запускаю приложение на Acer Iconia, Logcat также говорит:
01-07 11:39:35.292: D/libEGL(7914): loaded /system/lib/egl/libEGL_tegra.so
01-07 11:39:35.292: E/(7914): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
01-07 11:39:35.292: I/(7914): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
01-07 11:39:35.302: I/(7914): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
01-07 11:39:35.302: D/libEGL(7914): loaded /system/lib/egl/libGLESv1_CM_tegra.so
01-07 11:39:35.302: D/libEGL(7914): loaded /system/lib/egl/libGLESv2_tegra.so
01-07 11:39:35.332: I/(7914): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
01-07 11:39:35.332: D/OpenGLRenderer(7914): Enabling debug mode 0
Кажется, есть проблемы с загрузкой некоторых драйверов, кто-нибудь знает об этом подробнее? Не удалось найти много об этом в Интернете.
И напоследок несколько картинок, говорящих более 1000 слов.
Sharp http://imageshack.us/photo/my-images/338/crosswords21.png http://imageshack.us/photo/my-images/593/crosswords22.png/ Samsung Galaxy S2
Размыто, стрелки в правильном положении images/850/crosswordkindle1.png http://imageshack.us/photo/my-images/252/crosswordkindle2.png/ Kindle Fire HD
Размыто, стрелки загромождены в левом верхнем углу http://imageshack.us/photo/my-images/259/crosswordiconia1.png http://imageshack.us/photo/my-images/803/crosswordiconia2.png/ Acer Iconia
Пожалуйста, помогите мне :) Спасибо заранее.
Только что нашел это Весь текст в моем приложении для Android размывается а>. Кажется, это обычная проблема с вкладкой Iconia.