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

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

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

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

14.09.2013, 07:13. Просмотров 354. Ответов 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 с последними на данный момент обновлениями
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2013, 07:13     SurfaceView - широкий рисунок
Посмотрите здесь:

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

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

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

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

SurfaceView сворачивание программы - Программирование Android
@Override protected void onDraw(Canvas canvas){ //рисует игровое поле super.onDraw(canvas); Paint paint = new Paint();...

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

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

Вспомогательный поток в SurfaceView - Программирование Android
Правильно ли использовать дополнительный поток в SurfaceView? Т.е. допустим для обработки долгого касания экрана, удержания. В 42-й и...

Простейший пример SurfaceView - Программирование Android
Здравствуйте. Напишите пожалуйста простейшую программу рисующую точку на экране с помощью SurfaceView.

SurfaceView&Canvas - Программирование Android
Подскажите, как реализовать отображение, например, карандашика, когда рисуешь на Canvas в SurfaceView. В какую сторону копать, чтобы такое...

Canvas, SurfaceView, Touch - Программирование Android
Всем добра. Возник один баг (может в коде проблема), который неприятно выглядит в приложении. Рисуя с помощью SurfaceView, Canvas...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.09.2013, 00:52     SurfaceView - широкий рисунок #2
смотрите логи.
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
15.09.2013, 00:56     SurfaceView - широкий рисунок #3
...выскакивает ошибка...
Какая ошибка то? Что в логкат написано - OutOfMemoryException?
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 42
15.09.2013, 13:30  [ТС]     SurfaceView - широкий рисунок #4
А где это посмотреть на девайсе?
На эмуляторе всё Ок
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
15.09.2013, 18:38     SurfaceView - широкий рисунок #5
В ide есть утилита LogCat, она логирует события, которые происходят на устройстве. При подключенном устройстве произведите действия, которые роняют ваше приложения, затем в LogCat посмотрите какой exception это вызвало.
Yandex
Объявления
15.09.2013, 18:38     SurfaceView - широкий рисунок
Ответ Создать тему
Опции темы

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