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

Почему Canvas не выводит текст? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как понять в какой программе создан исходник? http://www.cyberforum.ru/android-dev/thread1173046.html
Есть папка с исходниками. Как понять в чём эти исходники были созданы - то ли в Eclipse, от ли в AndroidStudio?
Android Получение контекста! Здавствуйте участники форума! :) На повестке возник такой вопрос. Обрисую ситуацию-> Есть класс, унаследованный от родителя, привязанного к активити. Как мне в этом классе получить контекст приложения??? Попробовал таким образом: Выводит в логи-> http://www.cyberforum.ru/android-dev/thread1172981.html
Android Убрать отступы элементов
По данному примеру делаю таблицу http://www.cyberforum.ru/blogs/344609/blog2338.html как убрать отступ 2 мм со всех сторон
Перенос проектов Android
Ребята как перенести андроид проект с одного компа на другой? Просто скопировать папку а на другом компе через импорт?
Android Всплывающее сообщение (Toast) http://www.cyberforum.ru/android-dev/thread1172849.html
Здравствуйте! Прочитал несколько раз 12 урок, но никак не смог реализовать. Сделал обычный калькулятор и нужно чтобы когда делил на ноль всплывало сообщение "На ноль делить нельзя" Когда делю: результат - символ бесконечности, думаю нужно задать, если результат = ∞, то вывести сообщение Пожалуйста, напишите готовый код. Button btnEqual; TextView result; int oper; btnEqual =...
Android Интеграция рекламы в андроидное приложение с возможностью платного отключения Собираюсь опубликовать прогу на 4pda (для регистрации в play store платить 25$, скорее всего, нецелесообразно). На хабре видел пару статей на эту тему. Бегло пробежавщись, сложилось впечатление, что для реализации In-app Billing всё-таки нужна привязка к play store, например, вот: >необходимо определить ключик в приложении – PublicKey, полученный при регистрации аккаунта на Android Market... подробнее

Показать сообщение отдельно
phpk
25 / 25 / 6
Регистрация: 15.05.2013
Сообщений: 1,046

Почему Canvas не выводит текст? - Android

12.05.2014, 15:05. Просмотров 569. Ответов 6
Метки (Все метки)

В коде, приведённом ниже вроде всё правильно, но не пойму, почему не выводится текст!
MainActivity.java
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
public class MainActivity extends Activity
{
    MySurface surface;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
 
        surface = new MySurface(this);
        setContentView(surface);
    }
 
    public class MySurface extends SurfaceView 
    implements SurfaceHolder.Callback
    {
        MyThread thread;
        SurfaceHolder holder;
 
        MySurface(Context context)
        {
            super(context);
 
            holder = getHolder();
            thread = new MyThread(holder);
 
        }
 
        @Override
        public void surfaceCreated(SurfaceHolder p1)
        {
            // TODO: Implement this method
            thread.running = true;
            thread.start();
        }
 
        @Override
        public void surfaceChanged(SurfaceHolder p1, int p2, int p3, int p4)
        {
            // TODO: Implement this method
        }
 
        @Override
        public void surfaceDestroyed(SurfaceHolder p1)
        {
            // TODO: Implement this method
            boolean retry = true;
            thread.running = false;
            while (retry)
            {
                try
                {
                    thread.join();
                    retry = false;
                }
                catch (InterruptedException e) {}
            }
        }
 
    }
}
MyThread.java
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
33
34
35
36
37
38
39
40
41
public class MyThread extends Thread
{
           boolean running;
    Paint p;
    SurfaceHolder holder;
    
    MyThread(SurfaceHolder h){
        holder = h;
        p = new Paint();
    }
 
    
    public void setRunning(boolean r){
        running = r;
    }
 
    @Override
    public void run()
    {
        // TODO: Implement this method
        p.setColor(Color.RED);
        while (running)
        {
            Canvas canv = null;
            try
            {
                
                canv = holder.lockCanvas();
                synchronized(holder){
                canv.drawText("hello",100,400,p);
                }
            }
            catch (Exception e) {}
            finally{
                holder.unlockCanvasAndPost(canv);
            }
        }
    }
    
    
}
Добавлено через 8 минут
нашёл ошибку, забыл добавить addCallback

Теперь другой вопрос.
Почему надпись "hello" появляется не сразу, а через пару секунд?
И почему при закрытии появляется ошибка "Ошибка в приложении"?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru