Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
1

SurfaceView - широкий рисунок

14.09.2013, 07:13. Просмотров 402. Ответов 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 + onKeyDown
Проблемка очень простая - не реагирует на onKeyDown в классе, наследующем...

Работа с SurfaceView
Отрисовка в SurfaceView никогда не вызывала трудностей, до тех пор, пока не...

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

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

Восстановление SurfaceView
Кто работал с SurfaceView, помогите! Рисую на SurfaceView с помощью...

4
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.09.2013, 00:52 2
смотрите логи.
0
Hank
64 / 55 / 5
Регистрация: 28.12.2011
Сообщений: 304
15.09.2013, 00:56 3
...выскакивает ошибка...
Какая ошибка то? Что в логкат написано - OutOfMemoryException?
0
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
15.09.2013, 13:30  [ТС] 4
А где это посмотреть на девайсе?
На эмуляторе всё Ок
0
Hank
64 / 55 / 5
Регистрация: 28.12.2011
Сообщений: 304
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

Мерцание в SurfaceView
Всем привет! Рисую на SurfaceView фон и на нем анимированные объекты. Кадры...

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

Обработка касаний в SurfaceView
Всем привет! Для обработки касаний в surfaceview определяю OnTouchEvent () но...


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

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

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