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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
#1

SurfaceView - широкий рисунок - Программирование Android

14.09.2013, 07:13. Просмотров 389. Ответов 4
Метки нет (Все метки)

Проблема в ограничениях размеров.
Создаю класс:

Java
1
2
3
4
5
6
7
8
9
10
11
    public class D3D extends SurfaceView {
        
        public D3D(Context context) {
            super(context);
/*          
            setFocusable(true);
            setFocusableInTouchMode(true);
            requestFocus(); 
*/
        }
    }
Далее размещаю его на FrameLayout размещённом на HorizontalScrollView с заданной шириной и высотой:

Java
1
2
3
4
5
6
7
8
9
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wideform);
        zFL = (FrameLayout) findViewById(R.id.zFL);
 
        d3d = new D3D(this);
        zFL.addView(d3d, 3000, 800);
    }
Затем рисую:

Java
1
2
3
4
5
6
7
8
9
10
11
12
    public void drwLine(View v){
        Canvas c = null;
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        SurfaceHolder sf = d3d.getHolder();
        synchronized (sf) {
            c = sf.lockCanvas();
            paint.setColor(Color.GREEN);
            paint.setStrokeWidth(2);
            c.drawLine(0, 0, 200, 200, paint);
            sf.unlockCanvasAndPost(c);
        }
    }
Всё рисуется нормально но есть ограничения на реальном девайсе.
Например ширина 3000 на эмуляторе работает нормально а на девайсе при попытке рисовать выскакивает ошибка, а при ширине 2000 - всё нормально.

И вот вопрос - это аппаратное ограничение и обойти никак или есть варианты?
В качестве реального девайса Nexus7, версия андроида на нём 4.3 с последними на данный момент обновлениями
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2013, 07:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос SurfaceView - широкий рисунок (Программирование Android):

Работа с SurfaceView - Программирование Android
Отрисовка в SurfaceView никогда не вызывала трудностей, до тех пор, пока не запустил приложение на телефоне с экраном 1920х1080px. Фпс упал...

Ошибка в SurfaceView - Программирование Android
есть игра. отрисовка идет через SurfaceView и поток привязанный к нему. ошибка возникает в следующем моменте - я открываю сам игровой...

SurfaceView + onKeyDown - Программирование Android
Проблемка очень простая - не реагирует на onKeyDown в классе, наследующем SurfaceView. Исправьте мою криворукость, пожалуйста, подскажите,...

Восстановление SurfaceView - Программирование Android
Кто работал с SurfaceView, помогите! Рисую на SurfaceView с помощью onTouchEvent(), без потока, все замечательно рисует, сворачиваю...

SurfaceView не отображается - Программирование Android
Учусь программировать по книге П. Дейтел, Х. Дейтел "Android для программистов. Создаём приложения". Делаю уже 5 приложение, но это не...

Мерцание в SurfaceView - Программирование Android
Всем привет! Рисую на SurfaceView фон и на нем анимированные объекты. Кадры беру из атласа. Появилось мерцание, причем фон не мерцает а...

4
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.09.2013, 00:52 #2
смотрите логи.
0
Hank
61 / 52 / 4
Регистрация: 28.12.2011
Сообщений: 293
15.09.2013, 00:56 #3
...выскакивает ошибка...
Какая ошибка то? Что в логкат написано - OutOfMemoryException?
0
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
15.09.2013, 13:30  [ТС] #4
А где это посмотреть на девайсе?
На эмуляторе всё Ок
0
Hank
61 / 52 / 4
Регистрация: 28.12.2011
Сообщений: 293
15.09.2013, 18:38 #5
В ide есть утилита LogCat, она логирует события, которые происходят на устройстве. При подключенном устройстве произведите действия, которые роняют ваше приложения, затем в LogCat посмотрите какой exception это вызвало.
0
15.09.2013, 18:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 18:38
Привет! Вот еще темы с ответами:

Camera без SurfaceView - Программирование Android
Здравствуйте. Можно ли сделать снимок с помощью класса Camera без предварительного просмотра? Например Camera.open() и потом сразу...

Узнать фон SurfaceView - Программирование Android
Как узнать фон SurfaceView? mSurfaceViewLeft = (SurfaceView)findViewById(R.id.surfaceViewLeft); mSurfaceViewRight =...

SurfaceView поверх ImageView - Программирование Android
До этого вместо Surface использовался обычный View и Canvas в нём, но потребовалась анимация. Просто в background картинку засунуть не...

Обработка касаний в SurfaceView - Программирование Android
Всем привет! Для обработки касаний в surfaceview определяю OnTouchEvent () но касания не обрабатываются. Контролирую через Log.d(). В чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru