Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

canvas.rotate - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Зачем нужны import org.apache.http.NameValuePair; http://www.cyberforum.ru/android-dev/thread900751.html
Зачем нужны import org.apache.http.NameValuePair; org.apache.http.message.BasicNameValuePair; для чего они нужны NameValuePair и BasicNameValuePair ?
Программирование Android SlidingMenu fatal error Привет всем! Решил сделать SMenu, скачал исходник с GH (https://github.com/jfeinstein10/SlidingMenu) Импортировал библиотеку, подключил через свойства проекта к проекту, но когда и прописываю... http://www.cyberforum.ru/android-dev/thread900666.html
Программирование Android AsyncTask<String, String, String> объясните пожалуйста
При описаний класса наследника AsyncTask мы в угловых скобках указываем три типа данных: 1. Тип входных данных. Это данные которые пойдут на вход в AsyncTask. 2. Тип промежуточных данных. Данные...
Подгрузка разной разметки Программирование Android
Как можно подгружать разную разметку (layout) при определённых условиях? т.е иногда использовать не (R.layout.fragment_screen), а например (R.layout.fragment_screen_2) ??? public class Fragment...
Программирование Android При отладке через USB кабель Eclipse не видит планшет PMP7280C3G http://www.cyberforum.ru/android-dev/thread900559.html
При отладке через USB кабель Eclipse не видит планшет PMP7280C3G Может драйвера какие-то надо поставить?
Программирование Android Потоки и AlertDialog Помогите, пожалуйста, бьюсь уже несколько дней. Создаю файловый менеджер. Это моя первая программа под Android, поэтому не всегда догоняю. Идея: Пользователь вызывает контекстное меню и... подробнее

Показать сообщение отдельно
geometria
1 / 1 / 0
Регистрация: 13.01.2013
Сообщений: 98

canvas.rotate - Программирование Android

14.06.2013, 03:20. Просмотров 906. Ответов 3
Метки (Все метки)

Данный код работает не стабильно на разных устройствах.

Под разные плотности экрана (ldpi, mdpi, hdpi, xhdpi) в каждую папку был положен файл с возрастающим разрешением как сказано в developer.android.com 75px-100px-150px-200px
Но, протестировав на эмуляторе устройство (mdpi 5.1" 480*800) и устройство (mdpi 3.2" 320*480) получила смещение во вращении. Код работает стабильно без разбивки файла по папкам drawable на устройствах ldpi и hdpi до 4х дюймов, даже одно и тоже разрешение экрана 480*800 на устройстве 4" hdpi - работает, а на 5.1" mdpi -нет.

Подскажите, пожалуйста, что не так в этом коде? И как сделать чтоб на всех аппаратах работало стабильно?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int rotation = 1;
               
        private void draw() {
            SurfaceHolder holder = getSurfaceHolder();
            Canvas c = null;
            try {
                c = holder.lockCanvas();
                int w = c.getWidth();//берем ширину экрана
                int h = c.getHeight();//высоту
                if (c != null) {
                    Paint p = new Paint();
                    p.setAntiAlias(false);
                    rotation += 6;
                    if (rotation > 360) {rotation = 1;}
                    
c.drawBitmap(bg, 0, 0, p);//фон
c.rotate(rotation, w*100/228, h*100/216); //44% от ширины и 46% от высоты, соответствует 210, 370 на устройстве с разрешением 480*800px
c.drawBitmap(pic, w*100/228-(w*156/1000), h*100/216-(w*156/1000), p);//соотв. 135,295  (156 это разница между верхней и этой строчкой (210-135) деленное на ширину экрана)     pic - картинка 100*100px
c.rotate(-rotation, w*100/228, h*100/216); //возвращаем холст
                }
            } finally {
                if (c != null)
                    holder.unlockCanvasAndPost(c);
            }
            mHandler.removeCallbacks(mUpdateDisplay);
            if (mVisible) {
                mHandler.postDelayed(mUpdateDisplay, 20);
            }
 
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru