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

Прога крэшиться при сворачивании(нажатии Home) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Изменить размер шрифта в виджете http://www.cyberforum.ru/android-dev/thread760344.html
Т.к. в AppWidgetProvider не используется findViewById используют класс RemoteView. RemoteViews rv= new RemoteViews(context.getPackageName(), R.layout.widget_layout); используя rv можно поменять,...
Программирование Android Вызвать метод класса получил ссылку на класс по его имени Class <?> cls = null; try { cls = Class.forName(classname); } catch (ClassNotFoundException e) { Log.e("ERROR-SET-CLASS", "класс не найден");... http://www.cyberforum.ru/android-dev/thread759965.html
Программирование Android По запуску приложения на эмуляторе
Подскажите пожалуйста. Решил попробовать поработать с андроидом и разработкой под него. Просто ради ознакомления и разобраться что к чему там. Скачал эклипс с эмулятором (сдк андроид) с...
Программирование Android admob
Здравствуйте, вопрос наверно не по теме, но все же подскажите пожалуйста как заполнить реквизиты от сбербанка в admob: что куда вставлять??? и что нужно выставлять в Account Type? заранее...
Программирование Android ActionBar&Menu http://www.cyberforum.ru/android-dev/thread759337.html
Хочу создать в баре меню, которое появляется только при нажатии на кнопку menu. Пункты должны быть с текстом и с иконкой. Но вот при нажатии на меню пункты меню ни в какую не хотят появляться с...
Программирование Android EditText Не работает пример взятый из книги myEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() ==... подробнее

Показать сообщение отдельно
EVP
390 / 246 / 43
Регистрация: 14.12.2010
Сообщений: 472
13.01.2013, 21:14
Surface уничтожается при приостановке активности.
Надо проверять её валидность и не рендерить когда прога на паузе.
Пример из книжки:

Кликните здесь для просмотра всего текста
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package com.example.testproject;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.Bitmap.Config;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.WindowManager;
 
public class MyActivity extends Activity {
    private AndroidFastRenderView renderView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        
        boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
        int frameBufferWidth = isLandscape ? 480 : 320;
        int frameBufferHeight = isLandscape ? 320 : 480;
        Bitmap frameBuffer = Bitmap.createBitmap(frameBufferWidth,
                frameBufferHeight, Config.RGB_565);
        
        renderView = new AndroidFastRenderView(this, frameBuffer);
        setContentView(renderView);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_my, menu);
        return true;
    }
    
    @Override
    public void onResume() {
        super.onResume();
        renderView.resume();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        renderView.pause();
    }
 
    class AndroidFastRenderView extends SurfaceView implements Runnable {
        Bitmap framebuffer;
        Canvas canvas;
        
        float color = 0;
        
        Thread renderThread = null;
        SurfaceHolder holder;
        volatile boolean running = false;
        
        public AndroidFastRenderView(Activity game, Bitmap framebuffer) {
            super(game);
            this.framebuffer = framebuffer;
            this.canvas = new Canvas(framebuffer);
            this.holder = getHolder();
        }
 
        public void resume() { 
            running = true;
            renderThread = new Thread(this);
            renderThread.start();         
        }
        
        private void update(float deltaTime)
        {
            int w = framebuffer.getWidth();
            int h = framebuffer.getHeight();
            color += 0.2f *deltaTime;
            if (color > 1)
                color = 0;
            int c = (int)(255*color);
            canvas.drawARGB(255, c, c, c);
        }
        
        public void run() {
            Rect dstRect = new Rect();
            long startTime = System.nanoTime();
            while(running) {  
                if(!holder.getSurface().isValid())
                    continue;           
                
                float deltaTime = (System.nanoTime()-startTime) / 1000000000.0f;
                startTime = System.nanoTime();
 
                update(deltaTime);
                
                Canvas canvas = holder.lockCanvas();
                canvas.getClipBounds(dstRect);
                canvas.drawBitmap(framebuffer, null, dstRect, null);                           
                holder.unlockCanvasAndPost(canvas);
            }
        }
 
        public void pause() {                        
            running = false;
            while(true) {
                try {
                    renderThread.join();
                    break;
                } catch (InterruptedException e) {
                    // retry
                }
            }
        }        
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru